LFS/Preparation
ÀÌ ¹®¼´Â ¾È¾ç´ëÇб³ ÄÄÇ»ÅÍ °øÇаú SI ¿¬±¸½ÇÀÇ ¹®¼ ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ »ý¼ºÇÑ ÆäÀÌÁö¸¦ ¿Å°Ü¿Â °ÍÀÔ´Ï´Ù. ¹ø¿ªÀ» ÇØÁֽŠ±èÀ¯¼®, ±è°üºó, Àü½Å¿ø, ¹Î°æ´ë, ±è±âÈÆ, ÀÓÁ¤È£, ¹é¼®°ï, ÀÌÈ£ÁÖ, ¾ÈÇý¸² ´Ô²² °¨»çÀÇ ¸»¾¸À» ÀüÇÕ´Ï´Ù. ÀÌ ¹®¼´Â LFS 5.1-Pre 1 À» ±âÁØÀ¸·Î Á¦ÀÛµÈ ¹®¼ÀÔ´Ï´Ù. (2004³â12¿ù29ÀÏ ±âÁØ) ÃÖ½ÅÀÇ Á¤º¸¿¡ ¸Â°Ô Á¶±Ý¾¿ ¾÷µ¥ÀÌÆ® ÇÒ ¿¹Á¤À̸ç, LFS¿¡ ´ëÇÑ Àüü ³»¿ëÀº http://wiki.kldp.org/wiki.php/LFS/¸¦ ÅëÇØ ¿¬°áµË´Ï´Ù. º» ¹®¼´Â LFS ½Ã½ºÅÛÀÇ Áغñ´Ü°è¿¡ ÇØ´çÇÏ´Â ÆÐÅ°Áö¿Í ÆÐÄ¡¸¦ ±¸ÇÏ´Â ºÎºÐÀ» ¼³¸íÇÕ´Ï´Ù.
* chaoxifer -- 7.2·Î ¹®¼ ¾÷µ¥ÀÌÆ®
Contents
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.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 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/
Automake (1.12.3) - 1,352 KB:
Download: http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz MD5 sum: 50f97f4159805e374639a73e2636f22e Home page: http://www.gnu.org/software/automake/
Bash (4.2) - 6,845 KB:
Download: http://ftp.gnu.org/gnu/automake/automake-1.12.3.tar.xz MD5 sum: 0df082825f8f41087eb70c5088f4515e Home page: http://www.gnu.org/software/bash/
Binutils (2.22) - 19,505 KB:
Download: http://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz MD5 sum: 3fb927c7c33022f1c327f14a81c0d4b0 Home page: http://www.gnu.org/software/binutils/
Bison (2.6.2) - 1,612 KB:
Download: http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.bz2 MD5 sum: ee0f10756c84979622b992a4a61ea3f5 Home page: http://www.gnu.org/software/bison/
Bzip2 (1.0.6) - 764 KB:
Download: http://ftp.gnu.org/gnu/bison/bison-2.6.2.tar.xz MD5 sum: dea291996f98c34c3fd8e389a9cf6ea1 Home page: http://www.bzip.org/
Check (0.9.8) - 546 KB:
Download: http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz MD5 sum: 00b516f4704d4a7cb50a1d97e6e8e15b Home page: http://check.sourceforge.net/
Coreutils (8.19) - 4,992 KB:
Download: http://sourceforge.net/projects/check/files/check/0.9.8/check-0.9.8.tar.gz MD5 sum: 5d75e9a6027cde79d2c339ef261e7470 Home page: http://www.gnu.org/software/coreutils/
DejaGNU (1.5) - 563 KB:
Download: http://ftp.gnu.org/gnu/coreutils/coreutils-8.19.tar.xz MD5 sum: 1a01231a2f3ed37c0efc073ccdda9375 Home page: http://www.gnu.org/software/dejagnu/
Diffutils (3.2) - 1,976 KB:
Download: http://ftp.gnu.org/gnu/dejagnu/dejagnu-1.5.tar.gz MD5 sum: 3df1cbca885e751e22d3ebd1ac64dc3c Home page: http://www.gnu.org/software/diffutils/
E2fsprogs (1.42.5) - 5,780 KB:
Download: http://ftp.gnu.org/gnu/diffutils/diffutils-3.2.tar.gz MD5 sum: 22e4deef5d8949a727b159d6bc65c1cc Home page: http://e2fsprogs.sourceforge.net/
Expect (5.45) - 614 KB:
Download: http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.42.5.tar.gz MD5 sum: aca828bb4bcca20991a442deb950b670 Home page: http://expect.sourceforge.net/
File (5.11) - 596 KB:
Download: http://prdownloads.sourceforge.net/expect/expect5.45.tar.gz MD5 sum: 44e1a4f4c877e9ddc5a542dfa7ecc92b Home page: http://www.darwinsys.com/file/
Findutils (4.4.2) - 2,100 KB:
Download: ftp://ftp.astron.com/pub/file/file-5.11.tar.gz MD5 sum: 16a407bd66d6c7a832f3a5c0d609c27b Home page: http://www.gnu.org/software/findutils/
Flex (2.5.37) - 1,280 KB:
Download: http://ftp.gnu.org/gnu/findutils/findutils-4.4.2.tar.gz MD5 sum: 351cc4adb07d54877fa15f75fb77d39f Home page: http://flex.sourceforge.net
Gawk (4.0.1) - 1,575 KB:
Download: http://prdownloads.sourceforge.net/flex/flex-2.5.37.tar.bz2 MD5 sum: c75940e1fc25108f2a7b3ef42abdae06 Home page: http://www.gnu.org/software/gawk/
GCC (4.7.1) - 80,703 KB:
Download: http://ftp.gnu.org/gnu/gawk/gawk-4.0.1.tar.xz MD5 sum: a601b032c39cd982f34272664f8afa49 Home page: http://gcc.gnu.org/
GDBM (1.10) - 640 KB:
Download: http://ftp.gnu.org/gnu/gcc/gcc-4.7.1/gcc-4.7.1.tar.bz2 MD5 sum: 933e6f15f51c031060af64a9e14149ff Home page: http://www.gnu.org/software/gdbm/
Gettext (0.18.1.1) - 14,785 KB:
Download: http://ftp.gnu.org/gnu/gdbm/gdbm-1.10.tar.gz MD5 sum: 88770493c2559dc80b561293e39d3570 Home page: http://www.gnu.org/software/gettext/
Glibc (2.16.0) - 9,756 KB:
Download: http://ftp.gnu.org/gnu/gettext/gettext-0.18.1.1.tar.gz MD5 sum: 3dd55b952826d2b32f51308f2f91aa89 Home page: http://www.gnu.org/software/libc/
GMP (5.0.5) - 1,632 KB:
Download: http://ftp.gnu.org/gnu/glibc/glibc-2.16.0.tar.xz MD5 sum: 80b181b02ab249524ec92822c0174cf7 Home page: http://www.gnu.org/software/gmp/
Grep (2.14) - 1,172 KB:
Download: http://ftp.gnu.org/gnu/gmp/gmp-5.0.5.tar.xz MD5 sum: 8aef50959acec2a1ad41d144ffe0f3b5 Home page: http://www.gnu.org/software/grep/
Groff (1.21) - 3,774 KB:
Download: http://ftp.gnu.org/gnu/grep/grep-2.14.tar.xz MD5 sum: d4a3f03849d1e17ce56ab76aa5a24cab Home page: http://www.gnu.org/software/groff/
GRUB (2.00) - 5,016 KB:
Download: http://ftp.gnu.org/gnu/groff/groff-1.21.tar.gz MD5 sum: 8b8cd29385b97616a0f0d96d0951c5bf Home page: http://www.gnu.org/software/grub/
Gzip (1.5) - 704 KB:
Download: http://ftp.gnu.org/gnu/grub/grub-2.00.tar.xz MD5 sum: a1043102fbc7bcedbf53e7ee3d17ab91 Home page: http://www.gnu.org/software/gzip/
Iana-Etc (2.30) - 201 KB:
Download: http://ftp.gnu.org/gnu/gzip/gzip-1.5.tar.xz MD5 sum: 2a431e169b6f62f7332ef6d47cc53bae Home page: http://freshmeat.net/projects/iana-etc/
Inetutils (1.9.1) - 1,941 KB:
Download: http://anduin.linuxfromscratch.org/sources/LFS/lfs-packages/conglomeration//iana-etc/iana-etc-2.30.tar.bz2 MD5 sum: 3ba3afb1d1b261383d247f46cb135ee8 Home page: http://www.gnu.org/software/inetutils/
IPRoute2 (3.5.1) - 379 KB:
Download: http://ftp.gnu.org/gnu/inetutils/inetutils-1.9.1.tar.gz MD5 sum: 944f7196a2b3dba2d400e9088576000c Home page: http://www.kernel.org/pub/linux/utils/net/iproute2/
Kbd (1.15.3) - 1,621 KB:
Download: http://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-3.5.1.tar.xz MD5 sum: d4425b44edd5eacd6099e672e4baacbf Home page: http://ftp.altlinux.org/pub/people/legion/kbd
Kmod (9) - 1,096 KB:
Download: http://ftp.altlinux.org/pub/people/legion/kbd/kbd-1.15.3.tar.gz MD5 sum: 8143e179a0f3c25646ce5085e8777200 Download: http://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-9.tar.xz
Less (444) - 301 KB:
MD5 sum: c8ae2d2694fbca2b28e238b30543a0cd Home page: http://www.greenwoodsoftware.com/less/
LFS-Bootscripts (20120901) - 33 KB:
Download: http://www.greenwoodsoftware.com/less/less-444.tar.gz MD5 sum: 56f9f76ffe13f70155f47f6b3c87d421 Download: http://www.linuxfromscratch.org/lfs/downloads/7.2/lfs-bootscripts-20120901.tar.bz2
Libpipeline (1.2.1) - 723 KB:
MD5 sum: 393e4ed76819ce412f8a406c44beabd0 Home page: http://libpipeline.nongnu.org/
Libtool (2.4.2) - 2,571 KB:
Download: http://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.2.1.tar.gz MD5 sum: 20896c919eca4acb3d2f13012fb7ba02 Home page: http://www.gnu.org/software/libtool/
Linux (3.5.2) - 66,060 KB:
Download: http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz MD5 sum: d2f3b7d4627e69e13514a40e72a24d50 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/
Make (3.82) - 1,213 KB:
Download: http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.bz2 MD5 sum: 8a7cef47fecab6272eb86a6be6363b2f Home page: http://www.gnu.org/software/make/
Man-DB (2.6.2) - 1,353 KB:
Download: http://ftp.gnu.org/gnu/make/make-3.82.tar.bz2 MD5 sum: 1a11100f3c63fcf5753818e59d63088f Home page: http://www.nongnu.org/man-db/
Man-pages (3.42) - 1,076 KB:
Download: http://download.savannah.gnu.org/releases/man-db/man-db-2.6.2.tar.xz MD5 sum: 647c48d46c464419185d031d04481ee5 Home page: http://www.kernel.org/doc/man-pages/
MPC (1.0) - 614 KB:
Download: http://www.kernel.org/pub/linux/docs/man-pages/man-pages-3.42.tar.xz MD5 sum: 2392bb23db94f344f493c4beca41398f Home page: http://www.multiprecision.org/
MPFR (3.1.1) - 1,047 KB:
Download: http://www.multiprecision.org/mpc/download/mpc-1.0.tar.gz MD5 sum: 13370ceb2e266c5eeb2f7e78c24b7858 Home page: http://www.mpfr.org/
Ncurses (5.9) - 2,760 KB:
Download: http://www.mpfr.org/mpfr-3.1.1/mpfr-3.1.1.tar.xz MD5 sum: 91d51c41fcf2799e4ee7a7126fc95c17 Home page: http://www.gnu.org/software/ncurses/
Patch (2.6.1) - 248 KB:
Download: ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz MD5 sum: 8cb9c412e5f2d96bc6f459aa8c6282a1 Home page: http://savannah.gnu.org/projects/patch/
Perl (5.16.1) - 13,256 KB:
Download: http://ftp.gnu.org/gnu/patch/patch-2.6.1.tar.bz2 MD5 sum: 0818d1763ae0c4281bcdc63cdac0b2c0 Home page: http://www.perl.org/
Pkg-config (0.27) - 1872 KB:
Download: http://www.cpan.org/src/5.0/perl-5.16.1.tar.bz2 MD5 sum: b87358e2c461a898cfd7c334e7dd8993 Home page: http://www.freedesktop.org/wiki/Software/pkg-config
Procps (3.2.8) - 279 KB:
Download: http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.tar.gz MD5 sum: 3a4c9feab14b6719afd8904945d9b4e4 Home page: http://procps.sourceforge.net/
Psmisc (22.19) - 481 KB:
Download: http://procps.sourceforge.net/procps-3.2.8.tar.gz MD5 sum: 9532714b6846013ca9898984ba4cd7e0 Home page: http://psmisc.sourceforge.net/
Readline (6.2) - 2,225 KB:
Download: http://prdownloads.sourceforge.net/psmisc/psmisc-22.19.tar.gz MD5 sum: 38563b4760ffce54b0eadf99cb5b16e8 Home page: http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
Sed (4.2.1) - 878 KB:
Download: http://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz MD5 sum: 67948acb2ca081f23359d0256e9a271c Home page: http://www.gnu.org/software/sed/
Shadow (4.1.5.1) - 2,142 KB:
Download: http://ftp.gnu.org/gnu/sed/sed-4.2.1.tar.bz2 MD5 sum: 7d310fbd76e01a01115075c1fd3f455a Home page: http://pkg-shadow.alioth.debian.org/
Sysklogd (1.5) - 85 KB:
Download: http://pkg-shadow.alioth.debian.org/releases/shadow-4.1.5.1.tar.bz2 MD5 sum: a00449aa439c69287b6d472191dc2247 Home page: http://www.infodrom.org/projects/sysklogd/
Sysvinit (2.88dsf) - 108 KB:
Download: http://www.infodrom.org/projects/sysklogd/download/sysklogd-1.5.tar.gz MD5 sum: e053094e8103165f98ddafe828f6ae4b Home page: http://savannah.nongnu.org/projects/sysvinit
Tar (1.26) - 2,285 KB:
Download: http://download.savannah.gnu.org/releases/sysvinit/sysvinit-2.88dsf.tar.bz2 MD5 sum: 6eda8a97b86e0a6f59dabbf25202aa6f Home page: http://www.gnu.org/software/tar/
Tcl (8.5.12) - 4,396 KB:
Download: http://ftp.gnu.org/gnu/tar/tar-1.26.tar.bz2 MD5 sum: 2cee42a2ff4f1cd4f9298eeeb2264519 Home page: http://tcl.sourceforge.net/
Time Zone Data (2012e) - 208 KB:
Download: http://prdownloads.sourceforge.net/tcl/tcl8.5.12-src.tar.gz MD5 sum: 174b2b4c619ba8f96875d8a051917703 Home page: http://www.iana.org/time-zones
Texinfo (4.13a) - 2,687 KB:
Download: http://www.iana.org//time-zones/repository/releases/tzdata2012e.tar.gz MD5 sum: cb74e1f7bcc9a968a891a471e72e47b8 Home page: http://www.gnu.org/software/texinfo/
Systemd (188) - 1,324 KB:
Download: http://ftp.gnu.org/gnu/texinfo/texinfo-4.13a.tar.gz MD5 sum: 71ba711519209b5fb583fed2b3d86fcb Home page: http://www.freedesktop.org/wiki/Software/systemd/
Udev-lfs Tarball (188) - 20 KB:
Download: http://www.freedesktop.org/software/systemd/systemd-188.tar.xz MD5 sum: d89b42699695554949d072ef46c0dfc9 Download: http://anduin.linuxfromscratch.org/sources/other/udev-lfs-188-3.tar.bz2
Util-linux (2.21.2) - 2,916 KB:
MD5 sum: ef6cd9f078c39c61ba744d08276a1210 Home page: http://userweb.kernel.org/~kzak/util-linux/
linux-2.21.2.tar.xz
Download: http://www.kernel.org/pub/linux/utils/util-linux/v2.21/util- MD5 sum: 54ba880f1d66782c2287ee2c898520e9
Vim (7.3) - 8,675 KB:
Home page: http://www.vim.org
Xz Utils (5.0.4) - 894 KB:
Download: ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2 MD5 sum: 5b9510a17074e2b37d8bb38ae09edbf2 Home page: http://tukaani.org/xz
Zlib (1.2.7) - 493 KB:
Download: http://tukaani.org/xz/xz-5.0.4.tar.xz MD5 sum: 161015c4a65b1f293d31810e1df93090 Home page: http://www.zlib.net/
Total size of these packages: about 292 MB
Download: http://www.zlib.net/zlib-1.2.7.tar.bz2 MD5 sum: 2ab442d169156f34c379c968f3f482dd 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
Binutils Build Fix Patch - 1.4 KB:
MD5 sum: e82d2200e82aa28640299bbcad140361 Download: http://www.linuxfromscratch.org/patches/lfs/7.2/binutils-2.22-build_fix-1.patch
Bzip2 Documentation Patch - 1.6 KB:
MD5 sum: ddc5a9a170ed6ba23b8eb7d808e609ee Download: http://www.linuxfromscratch.org/patches/lfs/7.2/bzip2-1.0.6-install_docs-1.patch
Coreutils Internationalization Fixes Patch - 272 KB:
MD5 sum: 6a5ac7e89b791aae556de0f745916f7f Download: http://www.linuxfromscratch.org/patches/lfs/7.2/coreutils-8.19-i18n-1.patch
Flex Regression Tests Patch - 2.8 KB:
MD5 sum: befbf82628d019ef08d522c95cba331d Download: http://www.linuxfromscratch.org/patches/lfs/7.2/flex-2.5.37-bison-2.6.1-1.patch
Glibc DNS Resolve Patch - 2.0 KB:
MD5 sum: d5b001ef9bdbbe32e2f27576d97d8ff0 Download: http://www.linuxfromscratch.org/patches/lfs/7.2/glibc-2.16.0-res_query_fix-1.patch
Kbd Loadkeys Fix Patch - 1.6 KB:
MD5 sum: d37659c643b1a2150624120238e5b295 Download: http://www.linuxfromscratch.org/patches/lfs/7.2/kbd-1.15.3-upstream_fixes-1.patch
Kbd Backspace/Delete Fix Patch - 12 KB:
MD5 sum: 58ae9bd7d546426cfaccf3eba16ad1a2 Download: http://www.linuxfromscratch.org/patches/lfs/7.2/kbd-1.15.3-backspace-1.patch
Kmod Testsuite Patch - 2.2 KB:
MD5 sum: f75cca16a38da6caa7d52151f7136895 Download: http://www.linuxfromscratch.org/patches/lfs/7.2/kmod-9-testsuite-1.patch
Make Upstream Fixes Patch - 9.7 KB:
MD5 sum: 11ab14f5b63ae3c163804517cf110fbb Download: http://www.linuxfromscratch.org/patches/lfs/7.2/make-3.82-upstream_fixes-2.patch
Patch Testsuite Fix Patch - 1 KB:
MD5 sum: 02c0f3989185a7345233872b1ae5f46d Download: http://www.linuxfromscratch.org/patches/lfs/7.2/patch-2.6.1-test_fix-1.patch
Perl Libc Patch - 1.6 KB:
MD5 sum: c51e1a95bfc5310635d05081472c3534 Download: http://www.linuxfromscratch.org/patches/lfs/7.2/perl-5.16.1-libc-2.patch
Procps HZ Errors Patch - 2.3 KB:
MD5 sum: daf5c64fd7311e924966842680535f8f Download: http://www.linuxfromscratch.org/patches/lfs/7.2/procps-3.2.8-fix_HZ_errors-1.patch
Procps Watch Patch - 3.5 KB:
MD5 sum: 2ea4c8e9a2c2a5a291ec63c92d7c6e3b Download: http://www.linuxfromscratch.org/patches/lfs/7.2/procps-3.2.8-watch_unicode-1.patch
Readline Upstream Fixes Patch - 1.3 KB:
MD5 sum: cd1a757e532d93662a7ed71da80e6b58 Download: http://www.linuxfromscratch.org/patches/lfs/7.2/readline-6.2-fixes-1.patch
Sed Regression Tests Patch - 1.9 KB:
MD5 sum: 3c185f7b76001d3d0af614f6f2cd5dfa Download: http://www.linuxfromscratch.org/patches/lfs/7.2/sed-4.2.1-testsuite_fixes-1.patch
Total size of these patches: about 367.9 KB
MD5 sum: 2c10a5804eedf5359bcf427bc0d05579 LFS µ¿È£È¸¿¡ °¡ º¸¸é À§¿¡ ³ª¿µÈ ÆÐÄ¡¿Ü¿¡ ´Ù¸¥ ¸¹Àº ÆÐÄ¡µéÀÌ Á¸ÀçÇÕ´Ï´Ù. ÀÌ·± ÆÐÄ¡µéÀº »ç¼ÒÇÑ ¹ö±×µéÀ» ÇØ°áÇØÁְųª, ºÎ°¡ÀûÀÎ ±â´ÉµéÀ» Ãß°¡ÇØÁÝ´Ï´Ù. http://www.linuxfromscratch.org/patches/downloads/ ¿¡ À§Ä¡ÇÑ ÆÐÄ¡ µ¥ÀÌÅͺ£À̽º¸¦ ÀÚÀ¯·Ó°Ô ½ÃÇèÇغ¸°í, »ç¿ëÇϱ⸦ ¿øÇÏ´Â ÆÐÄ¡µéÀ» ¼±ÅÃÇϼ¼¿ä.
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 µð·ºÅ丮 ¸¸µé±â ¶Chapter 5(ÀӽýýºÅÛ ¸¸µé±â)¿¡¼ ÄÄÆÄÀÏµÈ ¸ðµç ÇÁ·Î±×·¥Àº 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·Î ·Î±×ÀÎÇϱâ À§Çؼ´Â Æнº¿öµå°¡ ÇÊ¿äÇÕ´Ï´Ù. ´ÙÀ½ ¸í·ÉÀ» ÅëÇØ ¼³Á¤ÇØ ÁÝ´Ï´Ù.
lfs »ç¿ëÀÚÀÇ ±âº» ¼ÐÀ» bash·Î ÁöÁ¤ÇÕ´Ï´Ù. -g lfs lfs »ç¿ëÀÚ¸¦ lfs ±×·ì¿¡ Æ÷ÇÔ½Ãŵ´Ï´Ù. -m lfs¸¦ À§ÇÑ È¨ µð·ºÅ丮¸¦ »ý¼ºÇÕ´Ï´Ù. -k /dev/null ÀÌ ÆĶó¹ÌÅʹ ƯÁ¤ null device(/dev/null)·ÎÀÇ ÀÔ·Â À§Ä¡°¡ skeleton µð·ºÅ丮(/etc/skel)ÀÇ ÆÄÀÏÀ» º¹»çÇÏ¸é¼ ¹Ù²ð ¼ö ÀÖ´Â °æ¿ì¸¦ ¹æÁöÇϱâ À§ÇÑ °ÍÀÔ´Ï´Ù. /dev/null¿¡ ´ëÇØ ´õ ÀÚ¼¼È÷ ¾Ë°í ½ÍÀ¸½Å ºÐÀº ´ÙÀ½À» Âü°íÇϼ¼¿ä:/dev/null ¿¹Á¦ 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://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://www.linuxfromscratch.org//lfs/faq.html#no-ptys
°¡²û¾¿ °³¹ßÀÚ°¡ test suites¿¡ ½ÇÆÐÇصµ ½É°¢ÇÏ´Ù°í ¿©±âÁö ¾Ê´Â °æ¿ì ¶§¹®¿¡ Á¾Á¾ test suites¿¡ ½ÇÆÐÇÏ´Â ÆÐÅ°Áöµµ ´õ·¯ ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì¿¡ ÇØ´çÇÏ´Â ÆÐÅ°Áö¸¦ È®ÀÎÇÏ·Á¸éhttp://www.linuxfromscratch.org/lfs/build-logs/7.2/¿¡ ÀÖ´Â ·Î±×ÆÄÀÏÀ» È®ÀÎÇϽʽÿÀ. ÀÌ »çÀÌÆ®´Â ÀÌ Ã¥¿¡ ÀÖ´Â ¸ðµç ÆÐÅ°Áö¿¡ ÇØ´çÇÕ´Ï´Ù.
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 Àå¿¡¼ ¼³Ä¡ÀÛ¾÷À» ÇÒ ¶§ ¾Æ·¡ ³»¿ëµµ ÂüÁ¶Çϼ¼¿ä.
Binutils´Â /tools/bin ¿Í /tools/$TARGET_TRIPLET/binÀÇ ¾È¿¡ ±×°ÍÀÇ ¾î¼Àºí·¯¿Í ¸µÄ¿¸¦ ÀνºÅçÇÕ´Ï´Ù. Çö½Ç¿¡¼ ÇÑ À§Ã¼¿¡ ÀÖ´Â µµ±¸´Â ´Ù¸¥ ¸î¸î¿¡°Ô ¿¬°áµË´Ï´Ù. ¸µÄ¿ÀÇ Áß¿äÇÑ ¸éÀº ±×°ÍÀÇ ¶óÀ̺귯¸® Ž»ö ¼ø¼ÀÔ´Ï´Ù. »ó¼¼ÇÑ Á¤º¸´Â verbose flag¸¦ Áö³ª°¡´Â °Í¿¡ ÀÇÇØ ld ·ÎºÎÅÍ ¾ò¾î Áú ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, ld
¼³Ä¡µÈ ´ÙÀ½ÀÇ ÆÐÅ°Áö´Â 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°¡Áö Áß¿äÇÑ »ç½Çµé
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:
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 ÆĶó¹ÌÅÍÀÇ ÀǹÌ:
ÁÖÀÇ 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 ¿É¼ÇÀÇ ÀǹÌ
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 mrpropermake 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 (2.16.0)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ® :
ftp://ftp.gnu.org/gnu/glibc/
--
¹Ì·¯ »çÀÌÆ®µé :
ftp://gaosu.rave.org/pub/linux/lfs/packages/conglomeration/glibc-2.3.3-20031202.tar.bz2
http://lfs.mirror.intermedia.com.sg/packages/glibc/glibc-2.3.3-20031202.tar.bz2
ftp://lfs.mirror.intermedia.com.sg/pub/lfs/glibc/glibc-2.3.3-20031202.tar.bz2
http://dl.lfs.fredan.org/glibc-2.3.3-20031202.tar.bz2
http://packages.lfs-es.org/glibc-2.3.3-20031202.tar.bz2
http://mirror.averse.net/lfs-packages/glibc-2.3.3-20031202.tar.bz2
ftp://mirror.averse.net/pub/lfs-packages/glibc-2.3.3-20031202.tar.bz2
ftp://ftp.lfs-matrix.de/lfs/packages/conglomeration/glibc-2.3.3-20031202.tar.bz2
--
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¿¡¼ ¿¡·¯°¡ ¹ß»ýÇÏ°í ¾ïÁö·Î ÄÄÆÄÀÏÀ» ÇÑ´Ù°í Çصµ ÄÄÆÄÀÏ µµÁß ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.
¼³Á¤ ¿É¼ÇÀÇ ÀǹÌ:
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' Áö±Ý±îÁö ¸ðµç ÀÛ¾÷À» Àß µû¶ó Çß´Ù¸é ¿¡·¯´Â ¾øÀ» °ÍÀÌ°í, ´ÙÀ½°ú ¸Þ¼¼Áö¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
(´ÙÀ̳ª¹Í ¸µÄ¿ À̸§¿¡ Ç÷§ÆûÀÇ Æ¯Â¡ÀÌ ³ªÅ¸³ª ÀÖ½À´Ï´Ù.) ´ÙÀ̳ª¹Í ¸µÄ¿¸¦ ¼³Ä¡ÇÒ ¶§ ¼³Ä¡°æ·Î·Î½á /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.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 ¿É¼Çµé:
make ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÕ´Ï´Ù:
make install ÀÌÁ¦ ´ÙÀ½ÀåÀÇ "Re-adjusting" ºÎºÐÀ» À§ÇÑ ¸µÄ¿¸¦ ¹Ì¸® ÁغñÇصӴϴÙ.
make -C ld clean make -C ld LIB_PATH=/usr/lib:/lib cp -v ld/ld-new /tools/bin ÆĶó¹ÌÅÍ ¼³¸í:
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.soTclÀÇ Çì´õ¸¦ ¼³Ä¡ÇÕ´Ï´Ù. 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ÀÇ ÀǹÌ:
make ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, Tcl test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä. ±×·¯³ª È£½ºÆ®ÀÇ »óÅÂ(¼³Á¤)¿¡ µû¶ó¼(that are not fully understood)Tcl test suits°¡ ½ÇÆÐÇÏ´Â °æ¿ìµµ ÀÖ´Ù´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ¿©±â¼ test suits½ÇÆÐÇصµ ³î¶óÁø ¸¶¼¼¿ä( ½ÅÁßÇÏ°Ô °í·ÁÇÒ ÇÊ¿ä´Â ¾ø´Ù.)
make test ¼³Ä¡Çϱâ:
make SCRIPTS="" installmake parameterÀÇ ÀǹÌ:
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.15.1. Check ¼³Ä¡Çϱ⠶Check ÄÄÆÄÀÏÀ» À§ÇØ ÁغñÇÕ´Ï´Ù:
./configure --prefix=/tools ÆÐÅ°Áö¸¦ ºôµåÇÕ´Ï´Ù:
make ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ¿Ï·áµÇ¾ú½À´Ï´Ù. ¿¹Àü¿¡ ¾ê±âÇß´ø°Íó·³ ¿©±â¼ test suite¸¦ ½ÇÇàÇÏ´Â °ÍÀº Àǹ«´Â ¾Æ´Õ´Ï´Ù¸¸ È®ÀÎÇÏ°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» ½ÇÇàÇϽʽÿÀ:
make checktest suite¸¦ È®ÀÎÇÏ´Â °ÍÀº ´ë·« 4 SBU Á¤µµ °É¸³´Ï´Ù. ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÕ´Ï´Ù
make install 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-overwriteConfigure optionÀÇ ÀǹÌ:
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 ÆÐÄ¡ »çÀÌÆ®:
http://www.linuxfromscratch.org/patches/downloads/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://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ÀÇ ÀǹÌ:
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=/toolspackage ÄÄÆÄÀÏÇϱâ: 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 Libc ÆÐÄ¡ »çÀÌÆ®:
http://www.linuxfromscratch.org/patches/downloads/perl/
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.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 ½Ã½ºÅÛÀ» ºôµåÇϱâ À§ÇØ ÇÊ¿äÇÑ °æ¿ìµµ ÀÖ½À´Ï´Ù. ¹é¾÷ÇÒÁö ¸»Áö´Â º»ÀεéÀÇ ¼±ÅÃÀÔ´Ï´Ù.
|
Troglodytism does not necessarily imply a low cultural level. |