ÀÌ ¹®¼­´Â ¾È¾ç´ëÇб³ ÄÄÇ»ÅÍ °øÇаú SI ¿¬±¸½ÇÀÇ ¹®¼­ ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ »ý¼ºÇÑ ÆäÀÌÁö¸¦ ¿Å°Ü¿Â °ÍÀÔ´Ï´Ù. ¹ø¿ªÀ» ÇØÁֽбèÀ¯¼®, ±è°üºó, Àü½Å¿ø, ¹Î°æ´ë, ±è±âÈÆ, ÀÓÁ¤È£, ¹é¼®°ï, ÀÌÈ£ÁÖ, ¾ÈÇý¸² ´Ô²² °¨»çÀÇ ¸»¾¸À» ÀüÇÕ´Ï´Ù. ÀÌ ¹®¼­´Â LFS 5.1-Pre 1 À» ±âÁØÀ¸·Î Á¦ÀÛµÈ ¹®¼­ÀÔ´Ï´Ù. (2004³â12¿ù29ÀÏ ±âÁØ) ÃÖ½ÅÀÇ Á¤º¸¿¡ ¸Â°Ô Á¶±Ý¾¿ ¾÷µ¥ÀÌÆ® ÇÒ ¿¹Á¤À̸ç, LFS¿¡ ´ëÇÑ Àüü ³»¿ëÀº [http://wiki.kldp.org/wiki.php/LFS/]¸¦ ÅëÇØ ¿¬°áµË´Ï´Ù. º» ¹®¼­´Â LFS ½Ã½ºÅÛÀÇ Áغñ´Ü°è¿¡ ÇØ´çÇÏ´Â ÆÐŰÁö¿Í ÆÐÄ¡¸¦ ±¸ÇÏ´Â ºÎºÐÀ» ¼³¸íÇÕ´Ï´Ù. * [chaoxifer] -- 7.2·Î ¹®¼­ ¾÷µ¥ÀÌÆ® * ´ÙÀ½ ÀåÀÎ [LFS/Building]°ú °ãÄ¡´Â ºÎºÐÀº »èÁ¦ÇÏ°í »õ·Î ¾÷µ¥ÀÌÆ®µÈ ºÎºÐÀº Ãß°¡ÇÏ¿´½À´Ï´Ù. * ÀüüÀûÀ¸·Î ¼öÁ¤ÇÏ¿´°í ´Ù¿î·Îµå ¸µÅ©´Â È®ÀÎÇÏ°í ¼öÁ¤ÇÏ¿´½À´Ï´Ù. [[TableOfContents]] = »õÆÄƼ¼Ç ¸¸µé±â = == ¼Ò °³ == À̹ø Àå¿¡¼­´Â LFS½Ã½ºÅÛÀ» ¼³Ä¡Çϱâ À§ÇÑ ÆÄƼ¼Ç ÀÛ¾÷¿¡ ´ëÇØ ´Ù·ê °ÍÀÔ´Ï´Ù. ¿ì¸®´Â ÀÌÁ¦ »õ·Î¿î ÆÄƼ¼ÇÀ» ¸¸µé°í ±× ÆÄƼ¼Ç¿¡ ÆÄÀÏ ½Ã½ºÅÛÀ» ±¸ÃàÇÏ°í ¸¶¿îÆ®¸¦ ÇÒ °ÍÀÔ´Ï´Ù. == »õ ÆÄƼ¼Ç ¸¸µé±â == »õ·Î¿î 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ÆÄ ÀÏ¿¡¼­ »ç¿ëµÉ °Ì´Ï´Ù == »õ ÆÄƼ¼Ç¿¡ ÆÄÀÏ ½Ã½ºÅÛ ¸¸µé±â == ºó ÆÄƼ¼ÇÀÌ ÀÖ´Ù¸é, ±× À§¿¡ ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ¸®´ª½º»ó¿¡¼­´Â 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 ÆÄƼ¼Ç À̸§À¸·Î ¹Ù²Ù¼¼¿ä. == »õ ÆÄƼ¼ÇÀ» ¸¶¿îÆ®Çϱâ == ÀÌÁ¦ ¿ì¸° ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¸µé¾ú°í, ±× ÆÄƼ¼ÇÀ» »ç¿ëÇϱâ À§Çؼ­ ¸¶¿îÇÒ Àå¼Ò¸¦ °í¸£°í, ¸¶¿îÆ®¸¦ ÇØ¾ßÇÕ´Ï´Ù.ÀÌ ¹®¼­¿¡¼­´Â ÆÄÀÏ ½Ã½ºÅÛÀÌ /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 ÀÌ À߸øµÇ¾ú´Ù¸é ´Ù½Ã ¸¶¿îÆ® ÇØ¾ßÇÕ´Ï´Ù. ÀÌÁ¦ ¿ì¸®´Â ÀÛ¾÷ÇÒ °ø°£À» ¸¸µé¾ú°í, ÆÐŰÁö¸¦ ´Ù¿î·Îµå ¹ÞÀ» Áغñ°¡ µÇ¾ú½À´Ï´Ù. = ÇÊ¿äÇÑ ÆÐŰÁö¿Í ÆÐÄ¡µé = == ¼Ò °³ == ´ÙÀ½Àº ±âº» ¸®´ª½º ½Ã½ºÅÛÀ» ¼³Ä¡Çϱâ À§ÇØ ´Ù¿î·Îµå¸¦ ¹Þ¾Æ¾ßÇÏ´Â ÆÐŰÁöÀÇ ¸ñ·ÏÀÔ´Ï´Ù.¸ñÂ÷ÀÇ ¹öÀü ¹øÈ£´Â ÀÌ¹Ì ¹ßÇ¥µÈ ¼ÒÇÁÆ®¿þ¾îÀÇ ¹öÀü°ú »óÀÀÇϰí, ÀÌ Ã¥Àº ±×°Íµé¿¡ ¹ÙÅÁÀ» µÎ°í ÀÖ½À´Ï´Ù. LFS ¼³Ä¡¸¦ ¸¹ÀÌ ÇØ º» »ç¶÷ÀÌ ¾Æ´Ï¶ó¸é, »õ·Î¿î ¹öÀüÀ¸·Î ½ÃµµÇÏÁö ¾Ê±â¸¦ °­·ÂÈ÷ Ãæ°íÇÕ´Ï´Ù. ¶ÇÇÑ ½Å¹öÀüÀº ¾ÆÁ÷ ¾Ë·ÁÁöÁö ¾ÊÀº ¹ö±×µéÀÌ ÀÖÀ» ¼ö ÀÖÀ¸¹Ç·Î »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ¸ðµç URLµéÀÌ »ç¿ë °¡´ÉÇϸé, ´ÙÀ½ÀÇ ÇÁ·ÎÁ§Æ® ÆäÀÌÁö¸¦ ÃßõÇÕ´Ï´Ù.http://www.freshmeat.net/. Freshment page´Â ÇÁ·ÎÁ§Æ® À¥ »çÀÌÆ®, ¸ÞÀϸµ ¸®½ºÆ® , FAQ , changelogs µî »Ó¸¸¾Æ´Ï¶ó °ø½Ä´Ù¿î·Îµå »çÀÌÆ®¿¡ ã¾Æ°¡±â ½±µµ·Ï µµ¿ÍÁÝ´Ï´Ù. ÀÌ·± ´Ù¿î·Îµå »çÀÌÆ®µéÀÌ Ç×»ó À̿밡´ÉÇÏ´Ù°í º¸ÀåÇÒ ¼ö´Â ¾ø½À´Ï´Ù. ÀÌ Ã¥ÀÌ ¹ß°£µÈ ÈÄ¿¡ ´Ù¿î·Îµå »çÀÌÆ®°¡ º¯°æµÈ °æ¿ì google À» ÀÌ¿ëÇØ ã¾Æº¸±â ¹Ù¶ø´Ï´Ù. ãÁö ¸øÇÑ°Ô ÀÖÀ» °æ¿ì, errata page(http://www.linuxfromscratch.org/lfs/print/) ¿¡¼­ µµ¿òÀ» ¹Þ°Å³ª ±×·¡µµ ÇØ°áÀÌ ¾ÈµÇ¸é ´ÙÀ½ À¥»ç]ÀÌÆ®ÀÇ ´Ù¿î·Îµå ¸®½ºÆ®µé Áß¿¡¼­ Çϳª¸¦ Âü°íÇϼ¼¿ä.http://www.linuxfromscratch.org/lfs/packages.html ´ç½ÅÀº ÆÐŰÁö¿Í ÆÐÄ¡µéÀº ¼³Ä¡ °úÁ¤¿¡¼­ ÆíÇÏ°Ô ÀÌ¿ëÇÒ ¼ö ÀÖ´Â Àå¼Ò¿¡ ÀúÀåÇÏ´Â °É ¿øÇÒ °ÍÀÔ´Ï´Ù. ¶ÇÇÑ ¼Ò½ºÀÇ ¾ÐÃàÀ» Ç®°í ±×°ÍµéÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â ÀÛ¾÷µð·ºÅ丮°¡ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù.$LFS/sources´Â Ÿ¸£º¼µé°ú ÆÐÄ¡µéÀ» ÀúÀåÇϰí ÀÛ¾÷ÇÒ Àå¼Ò·Î ½á »ç¿ëµÉ°ÍÀÔ´Ï´Ù. ÀÌ·±½ÄÀ¸·Î ÇÊ¿äÇÑ ¸ðµç°ÍµéÀº LFSÆÄƼ¼Ç¿¡ À§Ä¡ÇÒ °ÍÀ̰í, ¸ðµç ¼³Ä¡°úÁ¤ µ¿¾È »ç¿ëÇÒ °ÍÀÔ´Ï´Ù. ÆÐŰÁö¿Í ÆÐÄ¡µéÀ» ´Ù¿î·Îµå Çϱâ Àü¿¡ root±ÇÇÑÀ¸·Î ´ÙÀ½ ¸í·ÉµéÀ» ½ÇÇàÇϱ⠹ٶø´Ï´Ù. {{{ mkdir $LFS/sources }}} ÀϹݻç¿ëÀÚ °èÁ¤À¸·Î ´Ù¿î·Îµå ¹ÞÀ¸·Á¸é ÀϹݻç¿ëÀÚµµ ¾²±â °¡´ÉÇϵµ·Ï ±ÇÇÑÀ» ÁÖ¾î¾ß ÇÕ´Ï´Ù: {{{ chmod a+wt $LFS/sources }}} [http://www.linuxfromscratch.org/lfs/view/stable/wget-list wget-list]¸¦ wgetÀ¸·Î ÀÔ·ÂÇÏ¿© ¸ðµç ÆÐŰÁö¸¦ ½±°Ô ´Ù¿î·Îµå ÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù: {{{ wget -i wget-list -P $LFS/sources }}} Ãß°¡ÀûÀ¸·Î, LFS-7.0À¸·Î ½ÃÀÛÇϸé, md5sums¶ó´Â ºÐ¸®µÈ ÆÄÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀÏÀº ¸ðµç ÆÐŰÁöµéÀÌ ÁøÇàÇϱâ ÀÌÀü¿¡ À¯È¿ÇÑ ¿Ã¹Ù¸¥ ÆÐŰÁöÀΰ¡¸¦ °Ë»çÇϴµ¥ »ç¿ëµË´Ï´Ù. $LFS/sources ÆÄÀÏ¿¡ ÇØ´ç ÆÄÀÏÀ» ³Ö°Ô ½ÇÇàÇϽʽÿÀ: {{{ pushd $LFS/sources md5sum -c md5sums popd }}} == ¸ðµç ÆÐŰÁöµé == -- [chaoxifer] [[DateTime(2013-01-19T15:11:06)]] '''Autoconf (2.69)''' - 1,186 KB: Home page: http://www.gnu.org/software/autoconf/ Download: http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz MD5 sum: 50f97f4159805e374639a73e2636f22e '''Automake (1.12.3)''' - 1,352 KB: Home page: http://www.gnu.org/software/automake/ Download: http://ftp.gnu.org/gnu/automake/automake-1.12.3.tar.xz MD5 sum: 0df082825f8f41087eb70c5088f4515e '''Bash (4.2)''' - 6,845 KB: Home page: http://www.gnu.org/software/bash/ Download: http://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz MD5 sum: 3fb927c7c33022f1c327f14a81c0d4b0 '''Binutils (2.22)''' - 19,505 KB: Home page: http://www.gnu.org/software/binutils/ Download: http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.bz2 MD5 sum: ee0f10756c84979622b992a4a61ea3f5 '''Bison (2.6.2)''' - 1,612 KB: Home page: http://www.gnu.org/software/bison/ Download: http://ftp.gnu.org/gnu/bison/bison-2.6.2.tar.xz MD5 sum: dea291996f98c34c3fd8e389a9cf6ea1 '''Bzip2 (1.0.6)''' - 764 KB: Home page: http://www.bzip.org/ Download: http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz MD5 sum: 00b516f4704d4a7cb50a1d97e6e8e15b '''Check (0.9.8)''' - 546 KB: Home page: http://check.sourceforge.net/ Download: http://sourceforge.net/projects/check/files/check/0.9.8/check-0.9.8.tar.gz MD5 sum: 5d75e9a6027cde79d2c339ef261e7470 '''Coreutils (8.19)''' - 4,992 KB: Home page: http://www.gnu.org/software/coreutils/ Download: http://ftp.gnu.org/gnu/coreutils/coreutils-8.19.tar.xz MD5 sum: 1a01231a2f3ed37c0efc073ccdda9375 '''DejaGNU (1.5)''' - 563 KB: Home page: http://www.gnu.org/software/dejagnu/ Download: http://ftp.gnu.org/gnu/dejagnu/dejagnu-1.5.tar.gz MD5 sum: 3df1cbca885e751e22d3ebd1ac64dc3c '''Diffutils (3.2)''' - 1,976 KB: Home page: http://www.gnu.org/software/diffutils/ Download: http://ftp.gnu.org/gnu/diffutils/diffutils-3.2.tar.gz MD5 sum: 22e4deef5d8949a727b159d6bc65c1cc '''E2fsprogs (1.42.5)''' - 5,780 KB: Home page: http://e2fsprogs.sourceforge.net/ Download: http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.42.5.tar.gz MD5 sum: aca828bb4bcca20991a442deb950b670 '''Expect (5.45)''' - 614 KB: Home page: http://expect.sourceforge.net/ Download: http://prdownloads.sourceforge.net/expect/expect5.45.tar.gz MD5 sum: 44e1a4f4c877e9ddc5a542dfa7ecc92b '''File (5.11)''' - 596 KB: Home page: http://www.darwinsys.com/file/ Download: ftp://ftp.astron.com/pub/file/file-5.11.tar.gz MD5 sum: 16a407bd66d6c7a832f3a5c0d609c27b '''Findutils''' (4.4.2) - 2,100 KB: Home page: http://www.gnu.org/software/findutils/ Download: http://ftp.gnu.org/gnu/findutils/findutils-4.4.2.tar.gz MD5 sum: 351cc4adb07d54877fa15f75fb77d39f '''Flex (2.5.37)''' - 1,280 KB: Home page: http://flex.sourceforge.net Download: http://prdownloads.sourceforge.net/flex/flex-2.5.37.tar.bz2 MD5 sum: c75940e1fc25108f2a7b3ef42abdae06 '''Gawk (4.0.1)''' - 1,575 KB: Home page: http://www.gnu.org/software/gawk/ Download: http://ftp.gnu.org/gnu/gawk/gawk-4.0.1.tar.xz MD5 sum: a601b032c39cd982f34272664f8afa49 '''GCC (4.7.1)''' - 80,703 KB: Home page: http://gcc.gnu.org/ Download: http://ftp.gnu.org/gnu/gcc/gcc-4.7.1/gcc-4.7.1.tar.bz2 MD5 sum: 933e6f15f51c031060af64a9e14149ff '''GDBM (1.10)''' - 640 KB: Home page: http://www.gnu.org/software/gdbm/ Download: http://ftp.gnu.org/gnu/gdbm/gdbm-1.10.tar.gz MD5 sum: 88770493c2559dc80b561293e39d3570 '''Gettext (0.18.1.1)''' - 14,785 KB: Home page: http://www.gnu.org/software/gettext/ Download: http://ftp.gnu.org/gnu/gettext/gettext-0.18.1.1.tar.gz MD5 sum: 3dd55b952826d2b32f51308f2f91aa89 '''Glibc (2.16.0)''' - 9,756 KB: Home page: http://www.gnu.org/software/libc/ Download: http://ftp.gnu.org/gnu/glibc/glibc-2.16.0.tar.xz MD5 sum: 80b181b02ab249524ec92822c0174cf7 '''GMP (5.0.5)''' - 1,632 KB: Home page: http://www.gnu.org/software/gmp/ Download: http://ftp.gnu.org/gnu/gmp/gmp-5.0.5.tar.xz MD5 sum: 8aef50959acec2a1ad41d144ffe0f3b5 '''Grep (2.14)''' - 1,172 KB: Home page: http://www.gnu.org/software/grep/ Download: http://ftp.gnu.org/gnu/grep/grep-2.14.tar.xz MD5 sum: d4a3f03849d1e17ce56ab76aa5a24cab '''Groff (1.21)''' - 3,774 KB: Home page: http://www.gnu.org/software/groff/ Download: http://ftp.gnu.org/gnu/groff/groff-1.21.tar.gz MD5 sum: 8b8cd29385b97616a0f0d96d0951c5bf '''GRUB (2.00)''' - 5,016 KB: Home page: http://www.gnu.org/software/grub/ Download: http://ftp.gnu.org/gnu/grub/grub-2.00.tar.xz MD5 sum: a1043102fbc7bcedbf53e7ee3d17ab91 '''Gzip (1.5)''' - 704 KB: Home page: http://www.gnu.org/software/gzip/ Download: http://ftp.gnu.org/gnu/gzip/gzip-1.5.tar.xz MD5 sum: 2a431e169b6f62f7332ef6d47cc53bae '''Iana-Etc (2.30)''' - 201 KB: Home page: http://freshmeat.net/projects/iana-etc/ Download: http://anduin.linuxfromscratch.org/sources/LFS/lfs-packages/conglomeration//iana-etc/iana-etc-2.30.tar.bz2 MD5 sum: 3ba3afb1d1b261383d247f46cb135ee8 '''Inetutils (1.9.1)''' - 1,941 KB: Home page: http://www.gnu.org/software/inetutils/ Download: http://ftp.gnu.org/gnu/inetutils/inetutils-1.9.1.tar.gz MD5 sum: 944f7196a2b3dba2d400e9088576000c '''IPRoute2 (3.5.1)''' - 379 KB: Home page: http://www.kernel.org/pub/linux/utils/net/iproute2/ Download: http://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-3.5.1.tar.xz MD5 sum: d4425b44edd5eacd6099e672e4baacbf '''Kbd (1.15.3)''' - 1,621 KB: Home page: http://ftp.altlinux.org/pub/people/legion/kbd Download: http://ftp.altlinux.org/pub/people/legion/kbd/kbd-1.15.3.tar.gz MD5 sum: 8143e179a0f3c25646ce5085e8777200 '''Kmod (9)''' - 1,096 KB: Download: http://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-9.tar.xz MD5 sum: c8ae2d2694fbca2b28e238b30543a0cd '''Less (444)''' - 301 KB: Home page: http://www.greenwoodsoftware.com/less/ Download: http://www.greenwoodsoftware.com/less/less-444.tar.gz MD5 sum: 56f9f76ffe13f70155f47f6b3c87d421 '''LFS-Bootscripts (20120901)''' - 33 KB: Download: http://www.linuxfromscratch.org/lfs/downloads/7.2/lfs-bootscripts-20120901.tar.bz2 MD5 sum: 393e4ed76819ce412f8a406c44beabd0 '''Libpipeline (1.2.1)''' - 723 KB: Home page: http://libpipeline.nongnu.org/ Download: http://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.2.1.tar.gz MD5 sum: 20896c919eca4acb3d2f13012fb7ba02 '''Libtool (2.4.2)''' - 2,571 KB: Home page: http://www.gnu.org/software/libtool/ Download: http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz MD5 sum: d2f3b7d4627e69e13514a40e72a24d50 '''Linux (3.5.2)''' - 66,060 KB: Home page: http://www.kernel.org/ Download: http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.5.2.tar.xz MD5 sum: b3cfccfb6961ea407acf0b070184b0b1 ¸®´ª½º Ä¿³ÎÀº ÀÚÁÖ ¾÷µ¥ÀÌÆ® µÇ´Âµ¥ ÀÌ´Â º¸¾È Ãë¾àÁ¡ÀÌ °è¼ÓÇØ¼­ ¹ß°ßµÇ±â ¶§¹®ÀÔ´Ï´Ù. errata ÆäÀÌÁö¿¡¼­ »õ·Î¿î ¸»ÀÌ ÀÖ±â Àü±îÁö´Â »ç¿ë°¡´ÉÇÑ ÃֽŠĿ³Î ¹öÀüÀº 3.5.x Ä¿³ÎÀÔ´Ï´Ù. Á¦ÇÑµÈ ¼Óµµ ¶Ç´Â ºñ½Ñ ´ë¿ªÆø ¶§¹®¿¡ ¸®´ª½º Ä¿³ÎÀ» ¾÷µ¥ÀÌÆ®ÇÏ°í ½ÍÀº À¯ÀúµéÀ» À§ÇØ ±âÁعöÀüÀÇ ÆÐŰÁö¿Í ÆÐÄ¡ÆÄÀÏÀº µû·Î ´Ù¿î·Îµå ÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿´½À´Ï´Ù. À̰ÍÀÌ ¾à°£ÀÇ ½Ã°£, ºñ¿ëÀ» ¾î´ÀÁ¤µµ´Â ÁÙ¿©ÁÙ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. '''M4 (1.4.16)''' - 1,229 KB: Home page: http://www.gnu.org/software/m4/ Download: http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.bz2 MD5 sum: 8a7cef47fecab6272eb86a6be6363b2f '''Make (3.82)''' - 1,213 KB: Home page: http://www.gnu.org/software/make/ Download: http://ftp.gnu.org/gnu/make/make-3.82.tar.bz2 MD5 sum: 1a11100f3c63fcf5753818e59d63088f '''Man-DB (2.6.2)''' - 1,353 KB: Home page: http://www.nongnu.org/man-db/ Download: http://download.savannah.gnu.org/releases/man-db/man-db-2.6.2.tar.xz MD5 sum: 647c48d46c464419185d031d04481ee5 '''Man-pages (3.42)''' - 1,076 KB: Home page: http://www.kernel.org/doc/man-pages/ Download: http://www.kernel.org/pub/linux/docs/man-pages/man-pages-3.42.tar.xz MD5 sum: 2392bb23db94f344f493c4beca41398f '''MPC (1.0)''' - 614 KB: Home page: http://www.multiprecision.org/ Download: http://www.multiprecision.org/mpc/download/mpc-1.0.tar.gz MD5 sum: 13370ceb2e266c5eeb2f7e78c24b7858 '''MPFR (3.1.1)''' - 1,047 KB: Home page: http://www.mpfr.org/ Download: http://www.mpfr.org/mpfr-3.1.1/mpfr-3.1.1.tar.xz MD5 sum: 91d51c41fcf2799e4ee7a7126fc95c17 '''Ncurses (5.9)''' - 2,760 KB: Home page: http://www.gnu.org/software/ncurses/ Download: ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz MD5 sum: 8cb9c412e5f2d96bc6f459aa8c6282a1 '''Patch (2.6.1)''' - 248 KB: Home page: http://savannah.gnu.org/projects/patch/ Download: http://ftp.gnu.org/gnu/patch/patch-2.6.1.tar.bz2 MD5 sum: 0818d1763ae0c4281bcdc63cdac0b2c0 '''Perl (5.16.1)''' - 13,256 KB: Home page: http://www.perl.org/ Download: http://www.cpan.org/src/5.0/perl-5.16.1.tar.bz2 MD5 sum: b87358e2c461a898cfd7c334e7dd8993 '''Pkg-config''' (0.27) - 1872 KB: Home page: http://www.freedesktop.org/wiki/Software/pkg-config Download: http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.tar.gz MD5 sum: 3a4c9feab14b6719afd8904945d9b4e4 '''Procps (3.2.8)''' - 279 KB: Home page: http://procps.sourceforge.net/ Download: http://procps.sourceforge.net/procps-3.2.8.tar.gz MD5 sum: 9532714b6846013ca9898984ba4cd7e0 '''Psmisc (22.19)''' - 481 KB: Home page: http://psmisc.sourceforge.net/ Download: http://prdownloads.sourceforge.net/psmisc/psmisc-22.19.tar.gz MD5 sum: 38563b4760ffce54b0eadf99cb5b16e8 '''Readline (6.2)''' - 2,225 KB: Home page: http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html Download: http://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz MD5 sum: 67948acb2ca081f23359d0256e9a271c '''Sed (4.2.1)''' - 878 KB: Home page: http://www.gnu.org/software/sed/ Download: http://ftp.gnu.org/gnu/sed/sed-4.2.1.tar.bz2 MD5 sum: 7d310fbd76e01a01115075c1fd3f455a '''Shadow (4.1.5.1)''' - 2,142 KB: Home page: http://pkg-shadow.alioth.debian.org/ Download: http://pkg-shadow.alioth.debian.org/releases/shadow-4.1.5.1.tar.bz2 MD5 sum: a00449aa439c69287b6d472191dc2247 '''Sysklogd (1.5)''' - 85 KB: Home page: http://www.infodrom.org/projects/sysklogd/ Download: http://www.infodrom.org/projects/sysklogd/download/sysklogd-1.5.tar.gz MD5 sum: e053094e8103165f98ddafe828f6ae4b '''Sysvinit (2.88dsf)''' - 108 KB: Home page: http://savannah.nongnu.org/projects/sysvinit Download: http://download.savannah.gnu.org/releases/sysvinit/sysvinit-2.88dsf.tar.bz2 MD5 sum: 6eda8a97b86e0a6f59dabbf25202aa6f '''Tar (1.26)''' - 2,285 KB: Home page: http://www.gnu.org/software/tar/ Download: http://ftp.gnu.org/gnu/tar/tar-1.26.tar.bz2 MD5 sum: 2cee42a2ff4f1cd4f9298eeeb2264519 '''Tcl (8.5.12)''' - 4,396 KB: Home page: http://tcl.sourceforge.net/ Download: http://prdownloads.sourceforge.net/tcl/tcl8.5.12-src.tar.gz MD5 sum: 174b2b4c619ba8f96875d8a051917703 '''Time Zone Data (2012e)''' - 208 KB: Home page: http://www.iana.org/time-zones Download: http://www.iana.org//time-zones/repository/releases/tzdata2012e.tar.gz MD5 sum: cb74e1f7bcc9a968a891a471e72e47b8 '''Texinfo (4.13a)''' - 2,687 KB: Home page: http://www.gnu.org/software/texinfo/ Download: http://ftp.gnu.org/gnu/texinfo/texinfo-4.13a.tar.gz MD5 sum: 71ba711519209b5fb583fed2b3d86fcb '''Systemd (188)''' - 1,324 KB: Home page: http://www.freedesktop.org/wiki/Software/systemd/ Download: http://www.freedesktop.org/software/systemd/systemd-188.tar.xz MD5 sum: d89b42699695554949d072ef46c0dfc9 '''Udev-lfs Tarball (188)''' - 20 KB: Download: http://anduin.linuxfromscratch.org/sources/other/udev-lfs-188-3.tar.bz2 MD5 sum: ef6cd9f078c39c61ba744d08276a1210 '''Util-linux (2.21.2)''' - 2,916 KB: Home page: http://userweb.kernel.org/~kzak/util-linux/ Download: http://www.kernel.org/pub/linux/utils/util-linux/v2.21/util- linux-2.21.2.tar.xz MD5 sum: 54ba880f1d66782c2287ee2c898520e9 '''Vim (7.3)''' - 8,675 KB: Home page: http://www.vim.org Download: ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2 MD5 sum: 5b9510a17074e2b37d8bb38ae09edbf2 '''Xz Utils (5.0.4)''' - 894 KB: Home page: http://tukaani.org/xz Download: http://tukaani.org/xz/xz-5.0.4.tar.xz MD5 sum: 161015c4a65b1f293d31810e1df93090 '''Zlib (1.2.7)''' - 493 KB: Home page: http://www.zlib.net/ Download: http://www.zlib.net/zlib-1.2.7.tar.bz2 MD5 sum: 2ab442d169156f34c379c968f3f482dd Total size of these packages: about 292 MB tarballÀº LFS mirror »çÀÌÆ®¿¡¼­ ´Ù¿î·Îµå ¹Þ¾Æ¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Glibc ¼½¼Ç¿¡¼­ ´Ù¿î·Îµå ¸µÅ©¸¦ Âü°íÇϼ¼¿ä. == ÇÊ¿äÇÑ ÆÐÄ¡µé == ÆÑŰÁöµé »Ó¸¸ ¾Æ´Ï¶ó °¢Á¾ ÆÐÄ¡µéµµ ÇÊ¿äÇÕ´Ï´Ù. ÆÑŰÁö¸¦ ¿ì¸®°¡ ¿øÇÏ´Â ´ë·Î ¼öÁ¤Çϰųª ¸ÞÀÎÅ×À̳ʰ¡ ¹ö±×¸¦ ÇØ°áÇϱâ À§ÇØ ¸¸µç ÆÐÄ¡°¡ ÇÊ¿äÇÕ´Ï´Ù. ´ÙÀ½ ÆÐÄ¡µéÀ» ´Ù¿î·Îµå ¹ÞÀ¸¼¼¿ä. '''Bash Upstream Fixes Patch''' - 51 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/bash-4.2-fixes-8.patch MD5 sum: e82d2200e82aa28640299bbcad140361 '''Binutils Build Fix Patch''' - 1.4 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/binutils-2.22-build_fix-1.patch MD5 sum: ddc5a9a170ed6ba23b8eb7d808e609ee '''Bzip2 Documentation Patch''' - 1.6 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/bzip2-1.0.6-install_docs-1.patch MD5 sum: 6a5ac7e89b791aae556de0f745916f7f '''Coreutils Internationalization Fixes Patch''' - 272 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/coreutils-8.19-i18n-1.patch MD5 sum: befbf82628d019ef08d522c95cba331d '''Flex Regression Tests Patch''' - 2.8 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/flex-2.5.37-bison-2.6.1-1.patch MD5 sum: d5b001ef9bdbbe32e2f27576d97d8ff0 '''Glibc DNS Resolve Patch''' - 2.0 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/glibc-2.16.0-res_query_fix-1.patch MD5 sum: d37659c643b1a2150624120238e5b295 '''Kbd Loadkeys Fix Patch''' - 1.6 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/kbd-1.15.3-upstream_fixes-1.patch MD5 sum: 58ae9bd7d546426cfaccf3eba16ad1a2 '''Kbd Backspace/Delete Fix Patch''' - 12 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/kbd-1.15.3-backspace-1.patch MD5 sum: f75cca16a38da6caa7d52151f7136895 '''Kmod Testsuite Patch''' - 2.2 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/kmod-9-testsuite-1.patch MD5 sum: 11ab14f5b63ae3c163804517cf110fbb '''Make Upstream Fixes Patch''' - 9.7 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/make-3.82-upstream_fixes-2.patch MD5 sum: 02c0f3989185a7345233872b1ae5f46d '''Patch Testsuite Fix Patch''' - 1 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/patch-2.6.1-test_fix-1.patch MD5 sum: c51e1a95bfc5310635d05081472c3534 '''Perl Libc Patch''' - 1.6 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/perl-5.16.1-libc-2.patch MD5 sum: daf5c64fd7311e924966842680535f8f '''Procps HZ Errors Patch''' - 2.3 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/procps-3.2.8-fix_HZ_errors-1.patch MD5 sum: 2ea4c8e9a2c2a5a291ec63c92d7c6e3b '''Procps Watch Patch''' - 3.5 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/procps-3.2.8-watch_unicode-1.patch MD5 sum: cd1a757e532d93662a7ed71da80e6b58 '''Readline Upstream Fixes Patch''' - 1.3 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/readline-6.2-fixes-1.patch MD5 sum: 3c185f7b76001d3d0af614f6f2cd5dfa '''Sed Regression Tests Patch''' - 1.9 KB: Download: http://www.linuxfromscratch.org/patches/lfs/7.2/sed-4.2.1-testsuite_fixes-1.patch MD5 sum: 2c10a5804eedf5359bcf427bc0d05579 Total size of these patches: about 367.9 KB LFS µ¿È£È¸¿¡ °¡ º¸¸é À§¿¡ ³ª¿­µÈ ÆÐÄ¡¿Ü¿¡ ´Ù¸¥ ¸¹Àº ÆÐÄ¡µéÀÌ Á¸ÀçÇÕ´Ï´Ù. ÀÌ·± ÆÐÄ¡µéÀº »ç¼ÒÇÑ ¹ö±×µéÀ» ÇØ°áÇØÁְųª, ºÎ°¡ÀûÀÎ ±â´ÉµéÀ» Ãß°¡ÇØÁÝ´Ï´Ù. http://www.linuxfromscratch.org/patches/downloads/ ¿¡ À§Ä¡ÇÑ ÆÐÄ¡ µ¥ÀÌÅͺ£À̽º¸¦ ÀÚÀ¯·Ó°Ô ½ÃÇèÇØº¸°í, »ç¿ëÇϱ⸦ ¿øÇÏ´Â ÆÐÄ¡µéÀ» ¼±ÅÃÇϼ¼¿ä. = ¸¶Áö¸· Áغñ °úÁ¤ = ([chaoxifer]: 7.2¹öÀüÀ¸·Î ¾÷µ¥ÀÌÆ® Çϸ鼭 Ãß°¡µÈ ºÎºÐÀÔ´Ï´Ù) == $LFS¿¡ ´ëÇÏ¿© == ÀÌ Ã¥¿¡¼­´Â LFS¶ó´Â ȯ°æº¯¼ö(environment variable)°¡ »ç¿ëµÉ °ÍÀÔ´Ï´Ù. À̰ÍÀº Ç×»ó Á¤ÀǵǾî ÀÖ¾î¾ß ÇÏ´Â ¾ÆÁÖ Áß¿äÇÑ º¯¼öÀÔ´Ï´Ù. À̰ÍÀº LFS ÆÄƼ¼ÇÀ¸·Î »ç¿ëµÉ ¸¶¿îÆ®Æ÷ÀÎÆ®¸¦ ¼³Á¤Çϱâ À§ÇØ ¹Ýµå½Ã ÀÖ¾î¾ß ÇÕ´Ï´Ù. LFS º¯¼ö°¡ ¼³Á¤µÇ¾î ÀÖ´ÂÁö È®ÀÎÇÏ·Á¸é ´ÙÀ½ÀÇ ¸í·ÉÀ» »ç¿ëÇϽʽÿÀ: {{{ echo $LFS }}} À§ÀÇ ¸í·ÉÀÌ LFS ÆÄÅß¼ÇÀÇ ¸¶¿îÆ® Æ÷ÀÎÆ®(ÀÌ Ã¥ÀÇ ¿¹Á¦¿¡¼­´Â /mnt/lfs·Î ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù)¸¦ °¡¸®Å°°í ÀÖ´ÂÁö È®½ÇÇÏ°Ô ÇØ¾ß ÇÕ´Ï´Ù. ¸¸¾à Ãâ·Â°á°ú°¡ ¿Ã¹Ù¸£Áö ¾Ê´Ù¸é ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î ¼³Á¤ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. {{{ export LFS=/mnt/lfs }}} ÀÌ·¯ÇÑ È¯°æº¯¼ö¸¦ °®´Â °ÍÀº ''mkdir $LFS/tools''¿Í °°Àº ¸í·Éó·³ ¹®ÀÚ ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡ À־ À¯¿ëÇÕ´Ï´Ù. ¼ÐÀº ¸í·É¹®¿¡ »ç¿ëµÇ´Â ±¸¹®¿¡¼­ ÀÚµ¿ÀûÀ¸·Î $LFSÀ» "/mnt/lfs"·Î ¹Ù²Ù¾î¼­ »ç¿ëÇÒ °Ì´Ï´Ù. ¿©·¯ºÐÀÌ ÇöÀçÀÇ ¼³Ä¡ ȯ°æ¿¡¼­ ¹þ¾î³ª°Å³ª ´Ù½Ã ÇöÀçÀÇ ¼³Ä¡ ȯ°æÀ¸·Î µÇµ¹¾Æ¿Ã ¶§µµ ȯ°æº¯¼­ $LFS°¡ Á¦´ë·Î ¼³Á¤µÇ¾î ÀÖ´ÂÁö ¹Ýµå½Ã È®ÀÎÇϽʽÿÀ.(su·Î ·çÆ®³ª ´Ù¸¥ »ç¿ëÀÚ·Î Å͹̳Πȯ°æÀÌ ¹Ù²î¾úÀ» ¶§) == $LFS/tools µð·ºÅ丮 ¸¸µé±â == [http://wiki.kldp.org/wiki.php/LFS/Preparation#s-4 Chapter 5(ÀӽýýºÅÛ ¸¸µé±â)]¿¡¼­ ÄÄÆÄÀÏµÈ ¸ðµç ÇÁ·Î±×·¥Àº [http://wiki.kldp.org/wiki.php/LFS/Building Chapter 6(ºôµåÇϱâ)]¿¡¼­ ¼³Ä¡µÉ ÇÁ·Î±×·¥°ú ±¸ºÐµÇ°Ô Çϱâ À§ÇØ $LFS/tools µð·ºÅ丮 ³»¿¡ ¼³Ä¡µÉ °ÍÀÔ´Ï´Ù. ÀÌ °÷¿¡ ÄÄÆÄÀϵǴ ÇÁ·Î±×·¥µéÀº ¸ðµÎ ÀÓ½Ã ÅøµéÀ̸ç ÃÖÁ¾ÀûÀÎ LFS½Ã½ºÅÛ¿¡´Â Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù. ÀÌ·¸°Ô ÇϹǷνá ÀÓ½Ã ÅøµéÀÌ »ç¿ëÇÏ¿© ÃÖÁ¾ÀûÀÎ ½Ã½ºÅÛÀÌ ¿Ï¼ºµÈ µÚ¿¡ ½±°Ô ÀÌ ÅøµéÀ» ½Ã½ºÅÛ¿¡¼­ Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ À̵é ÇÁ·Î±×·¥µéÀÌ È£½ºÆ® ½Ã½ºÅÛÀÇ µð·ºÅ丮¿¡ À§Ä¡ÇÏ´Â °ÍÀ» ¹Ì¸® »çÀü¿¡ ¹æÁöÇÒ ¼ö ÀÖ½À´Ï´Ù. root·Î ½ÇÇàÇÏ¿© ÇÊ¿äÇÑ µð·ºÅ丮¸¦ »ý¼ºÇÕ´Ï´Ù: {{{ mkdir -v $LFS/tools }}} ´ÙÀ½Àº /tools¿¡ ´ëÇÑ ½Éº¼¸µ ¸µÅ©¸¦ '/' ·çÆ® µð·ºÅ丮¿¡ ¸¸µå´Â °ÍÀÔ´Ï´Ù. À̰ÍÀº »õ·Î ¸¸µé¾îÁø µð·ºÅ丮¸¦ °¡¸®Å°´Â °ÍÀÔ´Ï´Ù. root±ÇÇÑÀ¸·Î ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÕ´Ï´Ù. {{{ ln -sv $LFS/tools / }}} '''Note''' À§ÀÇ ¸í·ÉÀº ¿Ã¹Ù¸¥ ¸í·ÉÀÔ´Ï´Ù. '''ln''' Ä¿¸Çµå´Â ¸î°¡ÁöÀÇ ¹®¹ýµéÀÌ ÀÖ½À´Ï´Ù. ¿©±â¿¡ ´ëÇØ¼­ ¿À·ù°¡ ÀÖ´Ù°í »ý°¢Çϼż­ ¾Ë·Á¾ß°Ú´Ù´Â ºÐÀº ±×Àü¿¡ '''info coreutils ln'''¿Í ln(1)À» È®ÀÎÇϽʽÿÀ. == LFS »ç¿ëÀÚ Ãß°¡Çϱâ == ¿©·¯ºÐµéÀÌ root °èÁ¤À¸·Î ·Î±×ÀÎÀ» ÇÒ °æ¿ì, ´Ü ÇѹøÀÇ ½Ç¼ö·Î ½Ã½ºÅÛ¿¡ ¼Õ»óÀ» ÀÔÈ÷°Å³ª ¾Æ¿¹ ÆÄ±«Çعö¸± ¼öµµ ÀÖ½À´Ï´Ù. ±×·¸°Ô ¶§¹®¿¡ ÀÌ Àý¿¡¼­ ÆÐŰÁö¸¦ ºôµåÇÒ ¶§´Â ±×·¯ÇÑ ±ÇÇÑÀÌ ¾ø´Â »ç¿ëÀÚ·Î ÇÏ´Â °ÍÀ» ±ÇÀåÇÕ´Ï´Ù. ¿©·¯ºÐµéÀº ¿©·¯ºÐ¸¸ÀÇ À̸§À» »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ Á» ´õ °£ÆíÇÏ°Ô Çϱâ À§ÇØ ¿©±â¿¡¼­´Â °£´ÜÈ÷ lfs¶ó°í À̸§Áþ°í lfs¶ó´Â ±×·ì¿¡ Æ÷ÇÔ½Ã۵µ·Ï ÇϰڽÀ´Ï´Ù. root±ÇÇÑÀ¸·Î ´ÙÀ½ÀÇ ¸í·ÉÀ» ½ÇÇàÇÏ¿© »õ·Î¿î »ç¿ëÀÚ¸¦ ¸¸µì´Ï´Ù: {{{ groupadd lfs useradd -s /bin/bash -g lfs -m -k /dev/null lfs }}} '''Ä¿¸Çµå¶óÀÎ ¿É¼Ç ¼³¸í''' '''-s /bin/bash''' ''lfs'' »ç¿ëÀÚÀÇ ±âº» ¼ÐÀ» '''bash'''·Î ÁöÁ¤ÇÕ´Ï´Ù. '''-g lfs''' lfs »ç¿ëÀÚ¸¦ lfs ±×·ì¿¡ Æ÷ÇÔ½Ãŵ´Ï´Ù. '''-m''' lfs¸¦ À§ÇÑ È¨ µð·ºÅ丮¸¦ »ý¼ºÇÕ´Ï´Ù. '''-k /dev/null''' ÀÌ ÆÄ¶ó¹ÌÅʹ ƯÁ¤ null device(/dev/null)·ÎÀÇ ÀÔ·Â À§Ä¡°¡ skeleton µð·ºÅ丮(/etc/skel)ÀÇ ÆÄÀÏÀ» º¹»çÇϸ鼭 ¹Ù²ð ¼ö ÀÖ´Â °æ¿ì¸¦ ¹æÁöÇϱâ À§ÇÑ °ÍÀÔ´Ï´Ù. /dev/null¿¡ ´ëÇØ ´õ ÀÚ¼¼È÷ ¾Ë°í ½ÍÀ¸½Å ºÐÀº ´ÙÀ½À» Âü°íÇϼ¼¿ä:[http://shakii.tistory.com/94 /dev/null ¿¹Á¦] '''lfs''' ½ÇÁ¦·Î »ç¿ëµÉ »ç¿ëÀÚÀÇ À̸§ÀÔ´Ï´Ù. lfs·Î ·Î±×ÀÎÇϱâ À§Çؼ­´Â ÆÐ½º¿öµå°¡ ÇÊ¿äÇÕ´Ï´Ù. ´ÙÀ½ ¸í·ÉÀ» ÅëÇØ ¼³Á¤ÇØ ÁÝ´Ï´Ù. {{{ passwd lfs }}} lfs¿¡°Ô $LFS/tools µð·ºÅ丮¿¡ ´ëÇÑ ¸ðµç ±ÇÇÑÀ» ÁÝ´Ï´Ù. {{{ chown -v lfs $LFS/tools }}} ¸¸¾à ÀÛ¾÷ µð·ºÅ丮°¡ ¼³¸íÇÑ ´ë·Î ¸¸µé¾îÁ³´Ù¸é ÀÌ µð·ºÅ丮¿¡ ´ëÇØ¼­µµ ±ÇÇÑÀ» ÁÝ´Ï´Ù. {{{ chown -v lfs $LFS/sources }}} ÀÌÁ¦, lfs·Î ·Î±×ÀÎÀ» ÇÕ´Ï´Ù. À̰ÍÀº virtual console, display manager, ȤÀº ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î °¡´ÉÇÕ´Ï´Ù. {{{ su - lfs }}} "-" ¶ó´Â °ÍÀº non-login ¼Ð°ú´Â ¹Ý´ë·Î '''su'''°¡ login ¼ÐÀ» ½ÃÀÛÇÏ´Â °ÍÀ» °¡¸®Åµ´Ï´Ù. ÀÌ µÎÁ¾·ùÀÇ ¼ÐÀÇ Â÷ÀÌÁ¡Àº bash(1), ''info bash''¿¡¼­ ÀÚ¼¼ÇÏ°Ô Ã£¾Æº¼ ¼ö ÀÖ½À´Ï´Ù. ¿¹) su¸¸ »ç¿ëÇØ¼­ root·Î ·Î±×ÀÎÇÒ °æ¿ì ȯ°æº¯¼ö´Â °¡Á®¿ÀÁö ¾Ê½À´Ï´Ù. ´ÜÁö ·Î±×ÀΰèÁ¤¸¸ ¹Ù²ò´Ï´Ù. ÇÏÁö¸¸ su - ¸¦ ÀÌ¿ëÇϸé ÇöÀçÀÇ È¯°æº¯¼ö±îÁö °¡Á®¿À±â ¶§¹®¿¡ ·Î±×ÀÎ ÈÄÀÇ À§Ä¡µµ ±×´ë·ÎÀ̸ç ÀÌ´Â su lfs¿Í su - lfs¿ÍÀÇ Â÷ÀÌÁ¡¿¡¼­µµ ¶È°°½À´Ï´Ù. ÀÌÁ¡ ²À~! ±â¾ïÇϽñ⠹ٶø´Ï´Ù. == ȯ°æ ¼³Á¤Çϱâ == '''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 }}} == 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/ http://www.linuxfromscratch.org/~sbu/] '''Note''' ¿äÁòÀÇ ¸¹Àº ½Ã½ºÅÛµéÀÌ µÎ °³ ÀÌ»óÀÇ ÇÁ·Î¼¼¼­(ȤÀº ÄÚ¾î)¸¦ °¡Áö°í À־ ÀÌ·¯ÇÑ °æ¿ì ȯ°æº¯¼ö¸¦ ¼³Á¤ÇÏ¿© "parallel make"¸¦ ÀÌ¿ëÇϸé ÄÄÆÄÀÏÇÏ´Â µ¥ °É¸®´Â ½Ã°£À» ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Core2Duo´Â µ¿½Ã¿¡ µÎ°³ÀÇ ÇÁ·Î¼¼¼­¸¦ ´ÙÀ½ÀÇ È¯°æº¯¼ö ¼³Á¤À¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù: {{{ export MAKEFLAGS='-j 2' }}} ¶Ç´Â ºôµå ½Ã¿¡ ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù: {{{ make -j2 }}} ÀÌ·¯ÇÑ µÎ °³ ÀÌ»óÀÇ ÇÁ·Î¼¼¼­°¡ ÀÌ·¯ÇÑ ¹æ¹ýÀ¸·Î »ç¿ëµÉ °æ¿ì Ã¥¿¡ ³ª¿ÍÀÖ´Â SBU´Â ¸¹ÀÌ º¯ÇÒ ¼ö ÀÖÀ¸¸ç ½ÉÁö¾î Á¤»óÀûÀ¸·Î ½ÇÇàÇßÀ» ¶§º¸´Ù ´õ Å©°Ô ³ª¿Ã ¼ö ÀÖ½À´Ï´Ù. Ãâ·Â°á°ú¸¦ ºÐ¼®ÇÒ ¶§¿¡µµ ¼­·Î ´Ù¸¥ ÇÁ·Î¼¼¼­°¡ µ¿½Ã¿¡ ¾×¼¼½ºµÇ±â ¶§¹®¿¡ ºÐ¼®ÀÌ ´õ ¾î·ÁÀ§Áú¼öµµ ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ À§ÀÇ ¿É¼ÇÀ¸·Î ºôµå¸¦ ÇÏ´Ù°¡ ¹®Á¦°¡ »ý°åÀ» °æ¿ì ¿¡·¯ ¸Þ¼¼Áö¸¦ ºÐ¼®Çϱâ À§Çؼ­´Â ¿É¼ÇÀ» ÇØÁ¦Çϰí single processor·Î ºôµåÇØº¸½Ã±â ¹Ù¶ø´Ï´Ù. == 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 http://www.linuxfromscratch.org//lfs/faq.html#no-ptys] °¡²û¾¿ °³¹ßÀÚ°¡ test suites¿¡ ½ÇÆÐÇØµµ ½É°¢ÇÏ´Ù°í ¿©±âÁö ¾Ê´Â °æ¿ì ¶§¹®¿¡ Á¾Á¾ test suites¿¡ ½ÇÆÐÇÏ´Â ÆÐŰÁöµµ ´õ·¯ ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì¿¡ ÇØ´çÇÏ´Â ÆÐŰÁö¸¦ È®ÀÎÇÏ·Á¸é[http://www.linuxfromscratch.org/lfs/build-logs/7.2/ http://www.linuxfromscratch.org/lfs/build-logs/7.2/]¿¡ ÀÖ´Â ·Î±×ÆÄÀÏÀ» È®ÀÎÇϽʽÿÀ. ÀÌ »çÀÌÆ®´Â ÀÌ Ã¥¿¡ ÀÖ´Â ¸ðµç ÆÐŰÁö¿¡ ÇØ´çÇÕ´Ï´Ù. = Àӽà ½Ã½ºÅÛ ±¸ÃàÇϱâ = == ¼Ò °³ == ÀÌ Àå¿¡¼­ ¿ì¸®´Â ¸®´ª½º ½Ã½ºÅÛ ÃÖ¼Ò»ç¾çÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ ÇÒ °ÍÀÔ´Ï´Ù. ÀÌ ½Ã½ºÅÛÀº ´ÙÀ½ Àå¿¡¼­ ÃÖÁ¾ LFS ½Ã½ºÅÛ ¼³Ä¡¸¦ ½ÃÀÛÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇÑ ÃæºÐÇÑ µµ±¸µéÀ» Æ÷ÇÔ ÇÒ °ÍÀÔ´Ï´Ù ÀÌ·± ÃÖ¼Ò»ç¾çÀÇ ¼³Ä¡´Â µÎ ´Ü°è¸¦ °ÉĨ´Ï´Ù. ÃֽŠÆÑŰÁöµé°ú µ¶¸³ÀûÀ¸·Î ÀÛµ¿µÇ´Â Toolchain(compiler,assembler, linker and libraries)À» ¼³Ä¡Çϰí, ±× ´ÙÀ½ ´Ù¸¥ ÇʼöÀûÀÎ ¸ðµç µµ±¸µéÀ» ¼³Ä¡Çϱâ À§ÇØ À̰͵éÀ» »ç¿ëÇÕ´Ï´Ù. ÀÌ Àå¿¡¼­ ÄÄÆÄÀÏµÈ ÆÄÀϵéÀº $LFS/tools µð·ºÅ丮 ¹Ø¿¡ ¼³Ä¡ µÉ °ÍÀÔ´Ï´Ù. ¿©±â¿¡¼­ ÄÄÆÄÀÏµÈ ÆÐŰÁöµéÀº À̹ø Àå¿¡¼­¸¸ ¾²À̱⠶§¹®¿¡, ¿ì¸®´Â ±×°ÍµéÀÌ ÃÖÁ¾ LFS½Ã½ºÅÛ°ú ¼¯ÀÌ´Â °ÍÀ» ¿øÇÏÁö ¾Ê½À´Ï´Ù. ¼³Ä¡¸í·ÉµéÀº bash shellÀ» »ç¿ëÇÑ´Ù°í °¡Á¤ÇÕ´Ï´Ù ¶ÇÇÑ ÀÌ¹Ì ¼Ò½ºÆÑŰÁöÀÇ ¾ÐÃàÀ» Ç®¾ú´Ù°í °¡Á¤Çϰí,(lfs»ç¿ëÀڷμ­ ·Î±×ÀÎµÈ µ¿¾È - ¾Õ¿¡¼­ °£´ÜÈ÷ ¼³¸íÇßÀ½ .) ¼³Ä¡¸í·ÉÀ» »ç¿ëÇϱâ Àü¿¡ ÆÑŰÁöÀÇ ¼Ò½º µð·ºÅ丮·Î µé¾î°¡±âÀ§ÇØ cd ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù. ±× ÆÑŰÁöµéÀÇ ÀϺδ ÄÄÆÄÀÏÀü¿¡ ÆÐÄ¡µË´Ï´Ù. ±× ÆÐÄ¡´Â ¹ö±×¸¦ ÇÇÇϱâ À§ÇØ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ÆÐÄ¡´Â Á¾Á¾ ÀÌ Àå°ú ´ÙÀ½ Àå µÑ´Ù¿¡¼­ ÇÊ¿äÇÏÁö¸¸ ±×¸® Å« ¹®Á¦´Â ¾Æ´Õ´Ï´Ù.±×·¯¹Ç·Î ÆÐÄ¡¸¦ ´Ù¿î·Îµå Çϱâ À§ÇÑ ¼³¸íÀ» º¼ ¶§ Çò°¥¸®´õ¶óµµ ³Ê¹« °ÆÁ¤ÇÏÁö ¸¶¼¼¿ä. ÆÐÄ¡¸¦ Àû¿ëÇÒ ¶§ °æ¿ì¿¡ µû¶ó offset À̳ª fuzz.¿¡ °üÇÑ °æ°í ¸Þ¼¼Áö¸¦ º¸°Ô µÉ°ÍÀÔ´Ï´Ù. ÀÌ·± °æ°íµéÀº ÆÐÄ¡¸¦ ¼º°øÀûÀ¸·Î Àû¿ë Çϴµ¥ À־ ÀüÇô °ÆÁ¤ÇÒ °ÍÀÌ ¾ø½À´Ï´Ù. ´ëºÎºÐÀÇ ÆÑŰÁö ¼³Ä¡°úÁ¤µ¿¾È È­¸é¿¡¼­ ¸ðµç Á¾·ùÀÇ ÄÄÆÄÀÏ °æ°í¸¦ º¼ °ÍÀÔ´Ï´Ù. ÀÌ °æ°íµéÀº Á¤»óÀûÀ̹ǷΠ½Å°æ¾²Áö ¾Ê¾Æµµ ÁÁ½À´Ï´Ù. C ¾ð¾îÀÇ Ç¥ÁØÀº ¸¹ÀÌ ¹Ù²î¾ú´Âµ¥, ÀϺΠÆÑŰÁöµéÀº ¿¾ ¹öÀüÀÇ C¿¡ ¸ÂÃß¾îÁ® Àֱ⠶§¹®¿¡ ³ª¿À´Â ¸Þ¼¼ÁöÀÔ´Ï´Ù. ½Å°æ¾µ ºÎºÐÀº ¾Æ´Õ´Ï´Ù. ÀØÁö ¸»¾Æ ÁÖ¼¼¿ä. ºÒÇÊ¿äÇÑ °Í ¾øÀÌ °ø°£À» Àý¾àÇϱâ À§ÇØ, °¢ ÆÑŰÁö¸¦ ¼³Ä¡ÇÑ ÈÄ¿¡ ¼Ò½º¿Í ¼³Ä¡ µð·º¼Ò¸®¸¦ »èÁ¦ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ÀÛ¾÷À» ÁøÇàÇϱâÀü¿¡ ¾Æ·¡Ã³·³ ½ÇÇàÇÔÀ¸·Î½á LFS ȯ°æº¯¼ö¸¦ Àû¿ë µÇ¾úÀ½À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. {{{ echo $LFS }}} LFS ÆÄƼ¼ÇÀÇ ¸¶¿îÆ®µÈ °÷ÀÇ °æ·Î¸¦ Ãâ·Â°á°ú·Î È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù. Ã¥ÀÇ ³»¿ëÀ» µû¶ú´Ù¸é "/mnt/lfs"À» º¼ ¼ö ÀÖÀ» °Ì´Ï´Ù. == 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 | 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 | grep interpreterÀ» ¼öÇàÇÔÀ¸·Î½á À̰ÍÀ» Á¡°ËÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼öÁ¤µÈ gccÀÇ ½ºÆå ÆÄÀÏ¿¡ ÀÇÇØ ¿ì¸®´Â ÀÌ ÀåÀÇ ³¡À» ÅëÇØ ¿©±â·ÎºÎÅÍ ÄÄÆÄµÈ ¸ðµç ÇÁ·Î±×·¥ÀÌ /tools/lib¿¡ ¿ì¸®µéÀÇ »õ·Î¿î µ¿ÀûÀÎ ¸µÄ¿¸¦ »ç¿ëÇÒ °ÍÀ» º¸ÁõÇϰí ÀÖ½À´Ï´Ù. »õ·Î¿î µ¿ÀûÀÎ ¸µÄ¿¸¦ »ç¿ëÇÒ Çʿ伺Àº GCCÀÇ µÎ¹øÂ° ÆÐ½º¸¦ À§ÇØ ½ºÆå ÆÐÄ¡¸¦ Àû¿ëÇÏ´Â °ÍÀÌ ÀÌÀ¯ÀÔ´Ï´Ù. ±×·¸°Ô ÇÏ´Â µ¥ À־ÀÇ ½ÇÆÐ´Â °á°úÀûÀ¸·Î ±×µé¾ÈÀ¸·Î ³»ÀåµÈ È£½ºÆ® ½Ã½ºÅÛ /lib µð·ºÅ丮·ÎºÎÅÍ ±×µé ½º½º·Î µ¿ÀûÀÎ ¸µÄ¿ÀÇ À̸§À» °¡Áö°í ÀÖ´Â GCC ÇÁ·Î±×·¥ÀÌ µÉ °ÍÀÔ´Ï´Ù. ±×·±µ¥ ±×°ÍÀº È£½ºÆ®·ÎºÎÅÍ ¹°·¯°¡´Â ¿ì¸®µéÀÇ ¸ñÀûÀ» ÁÂÀý ½Ãų °ÍÀÔ´Ï´Ù. BinutilÀÇ µÎ¹øÂ° ÆÐ½ºµ¿¾È¿¡ ¿ì¸®´Â --with-lib-path ÆÐ½º¸¦ ÀÌ¿ëÇÒ ¼öÀÖ½À´Ï´Ù. ldÀÇ ¶óÀ̺귯¸® Ž»ö ÆÐ½º¸¦ °ü¸®Çϱâ À§ÇØ ½ºÀ§Ä¡¸¦ ±¸¼ºÇÕ´Ï´Ù. Àü¹æÀ¸·Î ÀÌ Æ÷ÀÎÆ®·ÎºÎÅÍ ÄÚ¾î toolchainÀº µ¶¸³½ÄÀ̰í È£½ºÆ®ÀÔ´Ï´Ù. 5ÀåÀÇ ³ª¸ÓÁö´Â /toos¿¡ »õ·Î¿î Glibc¿¡ ¹Ý´ëÇÏ´Â ¸ðµç ºôµð¸¦ ÆÐŰÁöÇÕ´Ï´Ù. ¸ðµÎ Àß ÀÖ½À´Ï´Ù. 6Àå¿¡¼­ chrootȯ°æ¿¡ µé¾î°¡ÀÚ¸¶ÀÚ, ¿ì¸®°¡ ¾ð±ÞÇÑ ±×°ÍÀÇ µ¶¸³½Ä ¶§¹®¿¡ ¿ì¸®°¡ ù¹øÂ° Áß¿äÇÑ ÆÑŰÁö¿¡¼­ ÀνºÅçÇѰÍÀº GlibcÀÌ´Ù. == Á¤Àû¿¬°á¿¡ ´ëÇÑ ÁÖÀÇ == ¸ðµç ÇÁ·Î±×·¥Àº ±×µéÀÇ Æ¯Á¤ÇÑ Å×½ºÅ©¿·¿¡¼­, ¿ÀÈ÷·Á º¸ÅëÀûÀÌ°í ¶§¶§·Î ÇÏÂúÀº ¸¹Àº µ¿ÀÛÀ» ¼öÇàÇÕ´Ï´Ù. ÇÒ´çÇÏ´Â ¸Þ¸ð¸®, µð·ºÅ丮¿Í ÆÄÀÏ ¾²±â, ÆÄÀÏ Àбâ string Á¶ÀÛ, ÆÐÅÍ ¸ÅĪ, ¼öÇаú ´Ù¸¥ ¸¹Àº Á÷¹«¸¦ Æ÷ÇÕ´Ï´Ù. WheelÀ» Àç¹ß¸íÇϱâ À§ÇØ °¢°¢ÀÇ ÇÁ·Î±×·¥À» ¾î¿¼ö ¾øÀÌ ÇÏ°Ô ÇÏ´Â ´ë½Å¿¡, GNU ½Ã½ºÅÛÀº ÀÌ¹Ì ¸¸µé¾îÁø ¶óÀ̺귯¸®¿¡ ÀÖ´Â ±âº»ÀûÀÎ ÀÌ ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ±× µéÀ» »ç¿ëÇÏ´Â ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¶óÀ̺귯¸®·ÎºÎÅÍÀÇ ±â´ÉÀ» ¿¬°áÇÏ´Â µÎ ÁÖ¿äÇÑ ¹æ¹ý(Á¤Àû, µ¿Àû :statically ¶Ç´Â dynamically)ÀÌ ÀÖ½À´Ï´Ù. ÇÁ·Î±×·¥ÀÌ Á¤ÀûÀ¸·Î ¸µÅ©µÇ¾úÀ»¶§, °á°úÀûÀ¸·Î ´õ ºÎÇǰ¡ Å« ÇÁ·Î±×·¥ÀÌ µÇ¸é¼­ ½ÇÇà°¡´ÉÇÑ ±× »ç¿ëµÈ functionÀÇ ÄÚµå´Â Æ÷ÇԵ˴ϴÙ. ÇÁ·Î±×·¥ÀÌ µ¿ÀûÀ¸·Î ¸µÅ©µÇ¾úÀ»¶§, Æ÷ÇԵǴ °ÍÀº µ¿ÀûÀÎ ¸µÄ¿, ¶óÀ̺귯¸®ÀÇ À̸§, ±×¸®°í ±× functionÀÇ À̸§¿¡ ´ëÇÑ ÂüÁ¶ÀÔ´Ï´Ù. ±×·±µ¥ ±×°ÍÀº ´õ ÀÛÀº ¸¹Àº°Í¿¡¼­ÀÇ ½ÇÇà°¡´ÉÇÑ °á°úÀÔ´Ï´Ù. ¼¼¹øÂ° ¹æ¹ýÀº µ¿ÀûÀÎ ¸µÄ¿ÀÇ ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ´õ ¸¹Àº Á¤º¸´Â dlopen manpage¸¦ º¸¼¼¿ä. Dµ¿ÀûÀÎ ¿¬°áÀº Linux¿¡ defaultÇϰí Á¤ÀûÀÎ ¿¬°á¿¡ ´ëÇÑ Áß¿äÇÑ ¼¼°¡Áö Áß¿äÇÑ ÀåÁ¡À» °¡Áö°í ÀÖ½À´Ï´Ù. ù ¹øÂ°, ±× °°Àº ÄÚµåÀÇ ¸¹Àº º¹»ç¸¦ ÇÁ·Î±×·¥ÀÇ ¸ðµç °¡Áö(bunch)¾ÈÀ¸·Î Æ÷ÇÔµÇ°Ô ÇÏ´Â ´ë½Å¿¡ Çϵåµð½ºÅ©¿¡¼­ ½ÇÇà°¡´ÉÇÑ ¶óÀ̺귯¸® ÄÚµåÀÇ ´ÜÁö ÇϳªÀÇ º¹»ç¸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ±×·¡¼­ µð½ºÅ©°ø°£ Àý¾àµË´Ï´Ù.µÎ¹øÂ°, ¿©·¯°³ÀÇ ÇÁ·Î±×·¥ÀÌ °°Àº ¶óÀ̺귯½º Æã¼ÇÀ» µ¿½Ã¿¡ »ç¿ëÇÒ ¶§, Æã¼Ç ÄÚµåÀÇ ´ÜÁö ÇÑ º¹»ç´Â core¿¡ ¿ä±¸µË´Ï´Ù. ±×·¡¼­ ¸Þ¸ð¸®°ø°£ÀÌ Àý¾àµË´Ï´Ù.¼¼¹øÂ°, ¶óÀ̺귯¸® Æã¼ÇÀÌ ¹ö±×¸¦ °íÁ¤µÇ°Ô Çϰųª ±×·¸Áö ¾ÊÀ¸¸é °³¼±µÉ ¶§, ±× °³¼±µÈ Æã¼ÇÀ» ÀÌ¿ëÇÏ´Â ¸ðµç ÇÁ·Î±×·¥À» ´Ù½Ã ÄÄÆÄÀÏÇØ¾ß ÇÏ´Â ´ë½Å¿¡ ´ÜÁö ÀÌ ÇÑ ¶óÀ̺귯¸®¸¦ ´Ù½Ã ÄÄÆÄÀÏ Çʿ䰡 ÀÖ½À´Ï´Ù. µ¿ÀûÀÎ ¿¬°áÀÌ ¿©·¯ ÀåÁ¡À» °¡Áö°í ÀÖ´Ù¸é ¿Ö? ¿ì¸®´Â ÀÌ Àå¿¡¼­ ù¹øÂ° µÎ ÆÑŰÁö¸¦ Á¤ÀûÀ¸·Î ¿¬°áÇÒ±î¿ä? ±× ÀÌÀ¯´Â 3ºÎºÐÀÔ´Ï´Ù.- ¿ª»çÀûÀ̰í, ±³À°ÀûÀ̰í, ±â¼úÀûÀÔ´Ï´Ù(historical, educational, and technical). ¿ª»çÀûÀ¸·Î´Â, ´õ ÀÏÂïÀÌ LFSÀÇ ¹öÁ¯ ÀÌ ÀåÀÇ ¸ðµç ÇÁ·Î±×·¥¿¡¼­ Á¤ÀûÀ¸·Î ¿¬°áµÇ¾ú±â ¶§¹®ÀÔ´Ï´Ù. ±³À°ÀûÀ¸·Î´Â, Â÷ÀÌÁ¡À» ¾Æ´Â°ÍÀÌ À¯¿ëÇϱ⠶§¹®ÀÔ´Ù. ±â¼úÀûÀ¸·Î´Â, ¿ì¸®°¡ ±×·¸°Ô Çϴµ¥ À־ È£½ºÆ®·ÎºÎÅÍ µ¶¸³ÀûÀÎ ºÎºÐÀ» ¾ò±â ¶§¹®ÀÔ´Ï´Ù. Àǹ̴ ÇÁ·Î±×·¥ÀÌ È£½ºÆ® ½Ã½ºÅÛÀ¸·ÎºÎÅÍ µ¶¸³ÀûÀ¸·Î »ç¿ëµÇ´Â °ÍÀÔ´Ï´Ù. ±×·¯³ª óÀ½ µÎ ÆÐŰÁö°¡ µ¿ÀûÀ¸·Î ºôµåµÉ ¶§, ÀüüÀÇ ¼º°øÀûÀÎ LFS ºôµå´Â ¿©ÀüÈ÷ ¼ºÃëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» À¯ÀÇÇÒ °¡Ä¡°¡ ÀÖ½À´Ï´Ù. == ÀϹÝÀûÀÎ ÄÄÆÄÀÏ ¼³¸íµé == [chaoxifer] - 7.2·Î ¾÷µ¥ÀÌÆ®Çϸ鼭 »õ·Î Ãß°¡ÇÑ ºÎºÐÀÔ´Ï´Ù. ÆÐŰÁöµéÀ» ºôµåÇϱâ Àü¿¡ ±âº»ÀûÀ¸·Î ¾Ë¾ÆµÎ¾î¾ßÇÒ °ÍµéÀÌ ¸î°¡Áö ÀÖ½À´Ï´Ù. * ¸î¸îÀÇ ÆÐŰÁöµéÀº ºôµå Áß ¹®Á¦µéÀ» ÇÇÇϱâ À§ÇØ ÄÄÆÄÀÏÀü¿¡ ÆÐÄ¡°¡ Àû¿ëµÇ¾î¾ßÇÕ´Ï´Ù. ¾î¶² ÆÐÄ¡´Â À̹ø Àå¿¡¼­³ª ´ÙÀ½ Àå¿¡¼­ µÎ¹ø ´Ù ÆÐÄ¡µÇ¾î¾ßÇÏ´Â °æ¿ìµµ ÀÖÁö¸¸ ¶Ç ´Ù¸¥ °æ¿ì¿¡´Â Çѹø¸¸ ÆÐÄ¡µÇ¾îµµ µÇ´Â °ÍÀÌ ÀÖ½À´Ï´Ù. À̶§¹®¿¡ ¿©·¯ºÐµéÀº ÆÐŰÁö¸¦ ¼³Ä¡Çϸ鼭 ÆÐÄ¡°¡ ÀÌ·ç¾îÁöÁö ¾Ê¾Æ ¼³¸í¼­¿¡¼­ ½Ç¼ö·Î ºüÁø°ÍÀÌ ¾Æ´Ò±î °ÆÁ¤ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. ÆÐÄ¡¸¦ Àû¿ëÇÏ°í¼­ ºôµå½Ã¿¡ ³ªÅ¸³ª´Â ''offset''À̳ª ''fuzz''¿¡ ´ëÇÑ °æ°í¸Þ¼¼ÁöµéÀº ÀÌ¹Ì ÆÐÄ¡¾È¿¡¼­ ÃæºÐÈ÷ °è»êµÈ °á°úÀÔ´Ï´Ù. À̺κп¡ ´ëÇØ¼­´Â °ÆÁ¤ÇÏ½Ç ÇÊ¿ä´Â ¾ø½À´Ï´Ù. * ´ëºÎºÐÀÇ ÆÐŰÁö¸¦ ÄÄÆÄÀÏÇÏ´Â µ¿¾È È­¸é¿¡ ¸î¸î °æ°í¸Þ¼¼ÁöµéÀÌ ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù. À̰ÍÀº ¹«½ÃÇØµµ µÇ´Â °æ°íÀÔ´Ï´Ù. ÀÌ·¯ÇÑ °æ°í¸Þ¼¼ÁöµéÀº ȤÀº C, C++ ±¸¹®¿¡¼­ »ç¿ëµÇ´Â deprecated(¿¹Àü¿¡´Â »ç¿ëµÇ¾úÁö¸¸ ÀÌÁ¦´Â »ç¿ëµÇÁö ¾Ê´Â °Íµé)¿¡ ´ëÇÑ °ÍµéÀÔ´Ï´Ù. C Ç¥ÁØÀº ÀÚÁÖ ¹Ù²î±â ¶§¹®¿¡ ÆÐŰÁöµéÁß ¾î¶² °ÍµéÀº ¿À·¡µÈ Ç¥ÁØÀ» »ç¿ëÇÏ´Â °Íµéµµ ÀÖ½À´Ï´Ù. * ¸¶Áö¸·À¸·Î LFS ȯ°æ º¯¼ö°¡ Á¦´ë·Î ¼³Á¤µÇ¾îÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ: {{{ echo $LFS }}} 2°¡Áö Áß¿äÇÑ »ç½Çµé 1. ÀÌ Ã¥¿¡¼­ ÀÌ·ç¾îÁö´Â ºôµå´Â '''bash'''¼ÐÀ» »ç¿ëÇÑ´Ù°í °¡Á¤ÇÕ´Ï´Ù. 2. ºôµå °úÁ¤¿¡ ´ëÇØ ´Ù½Ã °­Á¶ÇÕ´Ï´Ù: 1. ¸ðµç ¼Ò½º¿Í ÆÐÄ¡µéÀÌ µé¾îÀÖ´Â µð·ºÅ丮´Â chrootȯ°æ¿¡¼­ Á¢±Ù°¡´ÉÇÑ /mnt/lfs/sources°°Àº µð·ºÅ丮À̾î¾ß ÇÕ´Ï´Ù. Àý´ë·Î /mnt/lfs/tools/ µð·ºÅ丮 ¾È¿¡ ¼Ò½º¸¦ ³õÁö ¸¶½Ê½Ã¿À. 2. ¼Ò½º µð·ºÅ丮·Î ÇöÀç µð·ºÅ丮¸¦ ¹Ù²Ù½Ê½Ã¿À. 3. °¢ ÆÐŰÁöµé¿¡ ´ëÇÏ¿© 3-1. tar ÇÁ·Î±×·¥À» ÀÌ¿ëÇØ¼­ ºôµåÇÒ ÆÐŰÁö¸¦ Ǫ½Ê½Ã¿À. ÀÌ Àå¿¡¼­´Â ¿©·¯ºÐÀÌ lfs ·Î ÆÐŰÁö¸¦ Ç®¾ú´ÂÁö ´Ù½ÃÇѹø È®ÀÎÇϽʽÿÀ. 3-2. ¿©·¯ºÐÀÌ ÆÐŰÁö¸¦ Ç®¾î¼­ »ý¼ºµÈ µð·ºÅ丮·Î À̵¿ÇϽʽÿÀ. 3-3. Ã¥ÀÇ ¼³¸í¿¡ µû¶ó ÆÐŰÁö¸¦ ºôµåÇϽʽÿÀ. 3-4. ´Ù½Ã ¼Ò½º µð·ºÅ丮(cd ../)·Î À̵¿ÇÕ´Ï´Ù. 3-5. ¹æ±Ý ÀÛ¾÷Çß´ø µð·ºÅ丮¸¦ »èÁ¦Çϰí ''''''-build¿Í °°Àº µð·ºÅ丮µéÀº Ã¥ÀÇ ¼³¸í¿¡ µû¶ó ´õÀÌ»ó °ü·Ã ÆÐŰÁö¸¦ ºôµåÇÒ Çʿ䰡 ¾øÀ¸¸é ±× ¶§ »èÁ¦ÇϽñ⠹ٶø´Ï´Ù. == 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. === BinutilsÀÇ ÀνºÅç === binutils´Â °¡Àå ¸ÕÀú ÄÄÆÄÀÏ ÇØ¾ß ÇÕ´Ï´Ù. ±âº» ÃÖÀûÈ­ Ç÷¡±×(including the -march and -mcpu options)µéÀ» º¯°æÇϴ°ÍÀº ±×¸® ÁÁÁö ½À°üÀÌ ¾Æ´Õ´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à¿¡ ´ç½ÅÀÌ CFLAGS³ª CXXFLAG °°Àº ÀÌ¹Ì ÃÖÀûÈ­ µÇ¾îÀִ ȯ°æº¯¼öµéÀ» º¯°æÇßÀ» °æ¿ì¿¡´Â Glibc¸¦ ¼³Ä¡ÇÒ ¶§ ¿ø»óº¹±Í ½ÃÄÑÁÖ¼¼¿ä. ÄÄÆÄÀÏ ÃÖÀûÈ­ »ç¿ëÀ¸·Î ºôµå ½ÇÆÐ°¡ ÀϾÁö ¾Êµµ·Ï ÆÐÄ¡¸¦ Àû¿ëÇÕ´Ï´Ù. {{{ patch -Np1 -i ../binutils-2.22-build_fix-1.patch }}} binutils ¹®¼­¿¡¼­´Â binutils¸¦ ¼³Ä¡ÇÒ¶§ /tools ¹Û¿¡¼­ ¼³Ä¡Çϴ°ÍÀ» ±ÇÀåÇÕ´Ï´Ù: {{{ mkdir -v ../binutils-build cd ../binutils-build }}} Note: SBU¸¦ Á¦´ë·Î ÃøÁ¤Çϱâ À§Çؼ­´Â ÇÑ ÆÑŰÁö¸¦ ¼³Ä¡ÇÒ ¶§ ÇÊ¿äÇÑ ÃÑ ½Ã°£À» °è»êÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ Çϸé SBU¸¦ Á¦´ë·Î ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. time { ./configure ... && ... && ... && make install; }. Binutils ÄÄÆÄÀÏ ÁغñÇϱâ: {{{ ../binutils-2.22/configure \ --prefix=/tools \ --with-sysroot=$LFS \ --with-lib-path=/tools/lib \ --target=$LFS_TGT \ --disable-nls \ --disable-werror }}} The meaning of the configure options: * --prefix=/tools: binutilsÇÁ·Î±×·¥µéÀ» /tools·Î ¼³Ä¡Ç϶ó´Â ¿É¼Ç. * --disable-nls: ´Ù±¹¾î Áö¿ø¿É¼ÇÀ» ²ö´Ù. ¿ì¸®´Â ¾ÕÀ¸·Î ÇÁ·Î±×·¥À» Á¤ÀûÀ¸·Î ÄÄÆÄÀÏÇØ¼­ »ç¿ëÇÒ °Çµ¥ À̿Ͱ°Àº ¿É¼ÇÀ» ÄÑµÎ¸é ³ªÁß¿¡ ¹®Á¦°¡ »ý±æ¼ö À־ »ç¿ëÇÏÁö ¾Ê´Â´Ù. * --with-sysroot=$LFS: À̰ÍÀº ºôµå ½Ã½ºÅÛÀÌ $LFS(/mnt/lfs)¾È¿¡¼­ ÇÊ¿äÇÑ Å¸°Ù ½Ã½ºÅÛ ¶óÀ̺귯¸®¸¦ ¤Ô¤º¤¿¤ºÀ¸¶ó°í ¼³Á¤ÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù. * --with-lib-path=/tools/lib: À̰ÍÀº ¸µÄ¿°¡ ¼³Á¤µÉ ¶§ »ç¿ëµÇ´Â ¶óÀ̺귯¸® °æ·ÎÀÔ´Ï´Ù. * --target=$LFS_TGT: ÄÄÇ»ÅÍ¿¡ ´ëÇÑ µð½ºÅ©¸³¼ÇÀÌ ÀúÀåµÈ $LFS_TGT ȯ°æº¯¼ö´Â '''config.guess'''½ºÅ©¸³Æ®¿¡¼­ ¸®ÅϵǴ °ª°ú ¾à°£ ´Ù¸¨´Ï´Ù. À̶§¹®¿¡ '''configure''' ½ºÅ©¸³Æ®·Î Å©·Î½º ¸µÄ¿¸¦ ¸¸µé±â À§ÇØ $LFS_TGT°ªÀ» BinutilsÀÇ ºôµå ½Ã½ºÅÛ¿¡ Àû¿ëÇ϶ó°í ¸»ÇØÁÖ´Â ¿É¼ÇÀÔ´Ï´Ù. * --disable-werror: À̰ÍÀº È£½ºÆ® ÄÄÆÄÀÏ·¯ºÎÅÍ ³ª¿À´Â °æ°íµé¿¡ ÀÇÇØ ºôµå°¡ ¸ØÃß´Â °ÍÀ» ¸·¾ÆÁÖ´Â ¿É¼ÇÀÔ´Ï´Ù. À̾ ÄÄÆÄÀÏÀ» °è¼Ó ÇսôÙ.: {{{ make }}} ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀº ³¡³µ½À´Ï´Ù. test suite¸¦ ¾îµð¿¡¼­ ½ÇÇàÇÒ °ÍÀÎÁö°¡ Áß¿äÇÕ´Ï´Ù. ¾ÆÁ÷ ¾ð±ÞÀÌ Á¶±Ý À̸¥ °ÍÀ̱⿡, ÀÌ Àå¿¡¼­´Â test suites ¸¦ ½ÇÇàÇϴ°ÍÀº ÃßõÇÏÁö ¾Ê½À´Ï´Ù.(for the temporary) GCC test suite¸¦ ½ÇÇàÇϱ⸦ ¿øÇÒÁö¶óµµ ¾ÆÁ÷ ¾ø±â¶§¹®¿¡ ÀÌ Àå¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. °Ô´Ù°¡ À̹øÀå¿¡¼­ ¼³Ä¡ÇÑ ÇÁ·Î±×·¥Àº ´ÙÀ½ ¼³Ä¡°úÁ¤¿¡¼­ µ¤¾î¾²±â µË´Ï´Ù. ¸¸¾à x86_64¿¡¼­ ºôµåÇß´Ù¸é ÅøÃ¼ÀÎÀ» Á¤»óÀûÀ¸·Î Çϱ⠿öÇØ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾îÁÝ´Ï´Ù {{{ case $(uname -m) in x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;; esac }}} ÆÐŰÁö ÀνºÅçÇϱâ: {{{ make install }}} Glibc¸¦ ¼³Ä¡ÇÑ ÈÄ¿¡ º¸°Ô µÉ "locking in"ºÎºÐÀ» À§ÇÑ ¼±ÇàÀÛ¾÷: {{{ make -C ld clean make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib }}} make ÆÄ¶ó¹ÌÅÍÀÇ ÀǹÌ: * -C ld clean: ld µð·ºÅ丮¾ÈÀÇ ¸ðµç ÄÄÆÄÀÏµÈ ½ÇÇàÈ­ÀϵéÀ» Áö¿î´Ù. * -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib: À̿ɼÇÀº ld ¼­ºê µð·ºÅ丮 ¾ÈÀÇ ¸ðµç ÇÁ·Î±×·¥µéÀ» ¸®ºôµåÇÑ´Ù. LIB_PATH º¯¼ö¿¡ "/tools/lib"¸¦ ÁöÁ¤ÇÏ¸é ±âº» ¼ÂÆÃµÇ¾î ÀÖ´Â µð·ºÅ丮¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¶óÀ̺귯¸® ÆÐ½º·Î /tools/lib¸¦ ÂüÁ¶ÇÏ°Ô µÈ´Ù. ÀÌ º¯¼ö´Â ¸µÄ¿ÀÇ °æ·Î¸¦ ÁöÁ¤ÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. {{{ ÁÖÀÇ Binutils ¿Í ¼Ò½º µð·ºÅ丮¸¦ Áö¿ìÁö ¸¶¼¼¿ä. ÀÌ ÀåÀÇ µÞÂÊ¿¡¼­ ´Ù½Ã »ç¿ëÇÏ°Ô µË´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº the Section called Contents of Binutils in Chapter 6À» ÂüÁ¶Çϼ¼¿ä. }}} == 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¸¦ ¼³Ä¡ÇÒ ¶§ ¿ø»óº¹±Í ½ÃÄÑÁÖ¼¼¿ä. ''' === Cross GCC ¼³Ä¡ === GCC´Â GMP, MPFR, MPC ÆÐŰÁöµéÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ¸¸¾à ¿©·¯ºÐµéÀÇ È£½ºÆ® ½Ã½ºÅÛ¿¡ ¾ð±ÞÇÑ °ÍµéÀÌ ÆÐŰÁö ÇüÅ·Πµû·Î ÀÖÁö ¾Ê´Ù¸é GCCÆÐŰÁö ¾È¿¡ ÀüºÎ Æ÷ÇԵǾî ÀÖÀ» °ÍÀÔ´Ï´Ù. ¸ÕÀú GCC ¼Ò½º µð·ºÅ丮 ¾È¿¡ °¢°¢ÀÇ ÆÐŰÁöµéÀ» Ç®°í GCC ºôµå°úÁ¤¿¡¼­ ÀÌµé ÆÐŰÁöµéÀÌ ÀÚµ¿ÀûÀ¸·Î »ç¿ëµÇµµ·Ï À̸§À» ¹Ù²ãÁÝ´Ï´Ù. {{{ tar -Jxf ../mpfr-3.1.1.tar.xz mv -v mpfr-3.1.1 mpfr tar -Jxf ../gmp-5.0.5.tar.xz mv -v gmp-5.0.5 gmp tar -zxf ../mpc-1.0.tar.gz mv -v mpc-1.0 mpc }}} ´ÙÀ½ÀÇ ¸í·É¹®Àº GCCÀÇ default dynamic linker¸¦ /tools¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â ÇÁ·Î±×·¥À» »ç¿ëÇϵµ·Ï ¹Ù²Ü°ÍÀÔ´Ï´Ù. ¶ÇÇÑ GCCÀÇ include °Ë»ö °æ·Î¶ÇÇÑ »èÁ¦ÇÕ´Ï´Ù.(/usr/include) {{{ for file in \ $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h) do cp -uv $file{,.orig} sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \ -e 's@/usr@/tools@g' $file.orig > $file echo ' #undef STANDARD_STARTFILE_PREFIX_1 #undef STANDARD_STARTFILE_PREFIX_2 #define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/" #define STANDARD_STARTFILE_PREFIX_2 ""' >> $file touch $file.orig done }}} óÀ½ º¸¸é ¹«½¼¸»ÀÎÁö ÀÌÇØÇϱâ Èûµé °Ì´Ï´Ù. ÇϳªÇϳª »ìÆìº¸µµ·Ï ÇսôÙ. ¸ÕÀú ¿ì¸®´Â gcc/config µð·ºÅ丮¾È¿¡¼­ linux.h, linux64.h, sysv4.h¶ó´Â À̸§À» °¡Áö´Â ÆÄÀÏÀ» ã¾Æ³À´Ï´Ù. ÆÄÀÏÀÌ °Ë»öµÇ¸é ÇØ´ç ÆÄÀÏÀ» .orig¸¦ ÆÄÀÏ¸í µÚ¿¡ µ¡ºÙ¿©¼­ º¹»çÇÕ´Ï´Ù. ±× µÚ¿¡ sed ¸í·ÉÀ¸·Î »ç¿ëµÈ Á¤±ÔÇ¥Çö½ÄÀÌ "/lib/ld", "/lib64/ld", "lib32/ld"¿¡ "/tools"¸¦ µ¡ºÙÀÌ°í µÎ¹øÂ° Ç¥Çö¿¡¼­´Â "/usr"°¡ "/tools"·Î ´ëüµË´Ï´Ù. ´ÙÀ½¹®Àå¿î ±âÁ¸ startfileÀÇ °æ·Î¸¦ ÆÄÀÏÀÇ ³¡ºÎºÐÀ¸·Î ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù. STANDARD_STARTFILE_PREFIX_1¿¡¼­ »õ·Î Á¤ÀÇÇÑ ºÎºÐÀÇ "/tools/lib/" À̺κÐÀ» ÀÚ¼¼È÷ º¸½Ê½Ã¿À. µÞºÎºÐ¿¡ "/"°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¸¶Áö¸·À¸·Î '''touch'''¸¦ ÀÌ¿ëÇØ ¿øº» ÆÄÀÏÀÇ ºñÁ¤»óÀûÀÎ º¯°æÀ» ¹Ì¸® ¸·À» ¼ö ÀÖ½À´Ï´Ù. ÀÌ´Â ÆÄÀÏÀÇ º¯°æ³¯Â¥¸¦ ¼³Á¤Çؼ­ '''cp -u'''¸¦ »ç¿ëÇÏ¿´À» ¶§ ¿øº»ÆÄÀÏÀÇ À߸øµÈ º¯°æÀ» ¸·À» ¼ö ÀÖ½À´Ï´Ù. (cp -u ´Â º¹»çÇÒ ÆÄÀÏÀÌ ÀÖÀ» ¶§ ÀÌ ÆÄÀÏÀÇ º¯°æ ³¯Â¥°¡ °°°Å³ª ´õ ÃÖ±ÙÀÇ °ÍÀÌ¸é º¹»çÇÏÁö ¾Ê½À´Ï´Ù.) GCC´Â ½ºÅú¸È£¸¦ Á¦´ë·Î °¨ÁöÇÏÁö ¸øÇϱ⠶§¹®¿¡ Glibc-2.16.0À» ºôµåÇÒ ¶§ ¹®Á¦°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î ÇØ´ç ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù: {{{ sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure }}} GCC ¹®¼­¿¡¼­´Â GCC¸¦ ¼³Ä¡ÇÒ¶§ /tools ¹Û¿¡¼­ ¼³Ä¡Çϴ°ÍÀ» ±ÇÀåÇϰí ÀÖ½À´Ï´Ù. {{{ mkdir -p $LFS/build/gcc-build cd $LFS/build/gcc-build }}} GCCÄÄÆÄÀÏÀ»À» ¿öÇØ configure: {{{ ../gcc-4.7.1/configure \ --target=$LFS_TGT \ --prefix=/tools \ --with-sysroot=$LFS \ --with-newlib \ --without-headers \ --with-local-prefix=/tools \ --with-native-system-header-dir=/tools/include \ --disable-nls \ --disable-shared \ --disable-multilib \ --disable-decimal-float \ --disable-threads \ --disable-libmudflap \ --disable-libssp \ --disable-libgomp \ --disable-libquadmath \ --enable-languages=c \ --with-mpfr-include=$(pwd)/../gcc-4.7.1/mpfr/src \ --with-mpfr-lib=$(pwd)/mpfr/src/.libs }}} configure ¿É¼ÇÀÇ ÀÇ¹Ì * --with-newlib: ¾ÆÁ÷ C library°¡ »ç¿ë°¡´ÉÇÏÁö ¾ÊÀº »óÅ¿¡¼­ libgcc°¡ ºôµåµÇ¸é ¹®Á¦°¡ ½ÇÆÐÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¶§¹®¿¡ inhibit_libc »ó¼ö°¡ Á¤ÀǵǾîÀÖ´Ù´Â °ÍÀ» ¹Ì¸® ¾Ë·ÁÁ༭ libc¸¦ ÇÊ¿ä·ÎÇÏ´Â Äڵ尡 ÄÄÆÄÀϵÇÁö ¾Êµµ·Ï ÇÕ´Ï´Ù. * --without-headers: cross-compiler¸¦ ¿Ïº®ÇÏ°Ô ¸¸µå·Á¸é GCC´Â target½Ã½ºÅÛ°ú ȣȯÀ̵Ǵ ǥÁØ Çì´õÆÄÀϵéÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÇÏÁö¸¸ ¿ì¸®ÀÇ ¸ñÇ¥¿¡´Â ÀÌ·¯ÇÑ Çì´õÆÄÀϵéÀº ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ Ç÷¡±×´Â GCC°¡ ÇØ´ç Çì´õÆÄÀϵéÀ» ãÁö ¾Êµµ·Ï ÇØÁÝ´Ï´Ù. * --with-local-prefix=/tools: gcc include path°¡ /usr/local/include·Î µÇ¾î ÀÖ´Â °ÍÀ» /tools/·Î ¹Ù²Ù¾î ÁÖ±â À§¼­ÀÔ´Ï´Ù. ÀÌ ¿É¼ÇÀÌ ²À ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ ¿ì¸®´Â È£½ºÆ® ½Ã½ºÅÛ¿¡ ¿µÇâÀ» ÃÖ¼ÒÈ­ Çϱ⸦ ¿øÇϱ⠶§¹®¿¡ ÀÌ ¿É¼ÇÀ» »ç¿ëÇÕ´Ï´Ù. * --with-native-system-header-dir=/tools/include: GCC´Â ±âº»ÀûÀ¸·Î /usr/include¿¡¼­ ½Ã½ºÅÛ Çì´õÆÄÀϵéÀ» ã½À´Ï´Ù. sysroot ½ºÀ§Ä¡( GCC ¿É¼ÇÀ¸·Î, Ç¥ÁØ C ¶óÀ̺귯¸® Çì´õ ÆÄÀϰú ¸®À̺귯¸® À§Ä¡¸¦ º¯°æÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. º¸Åë Å©·Î½º ÄÄÆÄÀÏÀ» ÇÒ ¶§ »ç¿ëµË´Ï´Ù. ¿¹:gcc --sysroot=/example Çϸé /example/usr/include¿¡¼­ Çì´õÆÄÀÏÀ» ã°Ô µË´Ï´Ù )¿Í ÇÔ²² ÀÌ¿ëÇÏ¸é º¸Åë $LFS/usr/include·Î ¹Ù²ð °ÍÀÔ´Ï´Ù. * --disable-shared: GCC°¡ Á¤Àû ³»ºÎ ¶óÀ̺귯¸®¸¦ ¸µÅ©Çϵµ·Ï ¸¸µì´Ï´Ù. ÀÌ·¸°Ô ÇÏ¿© È£½ºÆ® ½Ã½ºÅÛ¿¡¼­ ¹ß»ýµÉ ¼ö ÀÖ´Â ¹®Á¦¸¦ ÇÇÇÒ ¼ö ÀÖ½À´Ï´Ù. * --disable-decimal-float, --disable-threads, --disable-libmudflap, --disable-libssp, --disable-libgomp, --disable-libquadmath: Å©·Î½º ÄÄÆÄÀÏ·¯¸¦ ºôµåÇÒ¶§ À§ÀÇ decimal-float, threads, libmudflap, libsspµéÀº ºôµå½Ã¿¡ ½ÇÆÐÇÒ »Ó´õ·¯ Àӽà libc¸¦ ¸¸µå´Â µ¥¿¡ Çʿ䰡 ¾ø±â ¶§¹®¿¡ »ç¿ëÇÏÁö ¾Êµµ·Ï ÇÕ´Ï´Ù. * --disable-multilib: x86_64¿¡¼­ LFS´Â ¾ÆÁ÷ multilib ¼³Á¤À» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ½ºÀ§Ä¡´Â x86 ½Ã½ºÅÛ¿¡¼­´Â ¾Æ¹«·± ¿µÇâÀÌ ¾ø½À´Ï´Ù. * --enable-languages=c: ÀÌ ¿É¼ÇÀº ¼³Ä¡½Ã¿¡ C ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇϵµ·Ï ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¿É¼ÇÀº GCC Ÿ¸£º¼À» ´Ù¿î·Îµå ¹Þ¾Æ¼­ ¼³Ä¡ÇÒ¶§¸¸ »ç¿ëÇÕ´Ï´Ù. ÆÐŰÁö ÄÄÆÄÀÏÇϱâ. {{{ make }}} makeÆÄ¶ó¹ÌÅÍÀÇ ÀÇ¹Ì ÄÄÆÄÀÏÀº ³¡³µ½À´Ï´Ù. test suite¸¦ ¾îµð¿¡¼­ ½ÇÇàÇÒ °ÍÀÎÁö°¡ Áß¿äÇÕ´Ï´Ù. ¾ÆÁ÷Àº ±×·±°É ¸»Çϱ⿣ Á¶±Ý À̸£±â ¶§¹®¿¡, ÀÌ Àå¿¡¼­´Â test suites ¸¦ ½ÇÇàÇϴ°ÍÀº ÃßõÇÏÁö ¾Ê½À´Ï´Ù. GCC test suite¸¦ ½ÇÇàÇϱ⸦ ¿øÇÒÁö¶óµµ ¾ÆÁ÷ ¾ø±â ¶§¹®¿¡ ÀÌ Àå¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. °Ô´Ù°¡ À̹øÀå¿¡¼­ ¼³Ä¡ÇÑ ÇÁ·Î±×·¥Àº ´ÙÀ½ ¼³Ä¡ °úÁ¤¿¡¼­ µ¤¾î ¾²°Ô µË´Ï´Ù. ÆÐŰÁö ¼³Ä¡Çϱâ: {{{ make install }}} Áö±Ý±îÁöÀÇ °úÁ¤ÀÌ ³¡³ª¸é /tools/bin/ccÀÇ symlink¸¦ ¸¸µé°ÍÀÔ´Ï´Ù. ¸¹Àº ÇÁ·Î±×·¥µé°ú ½ºÅ©¸³Æ®µéÀº gcc ´ë½Å¿¡ cc¸¦ ÀÌ¿ëÇÕ´Ï´Ù. À̰ÍÀº ÇÁ·Î±×·¥ÀÇ ¼Ó¼ºÀ» À¯ÁöÇÏ°Ô Çϰí, ¸ðµç Á¾·ùÀÇ À¯´Ð½º ½Ã½ºÅÛ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁÝ´Ï´Ù. ¸ðµç Á¾·ùÀÇ À¯´Ð½º ½Ã½ºÅÛ¿¡ GNU C ÄÄÆÄÀÏ·¯°¡ ¼³Ä¡µÇ¾î ÀÖ´Â°Ç ¾Æ´Õ´Ï´Ù. ÀÌ·¸°Ô Çϸé, ½Ã½ºÅÛ¿¡ ¾î¶² Á¾·ùÀÇ C ÄÄÆÄÀÏ·¯°¡ ¼³Ä¡µÇ¾î ÀÖ´ø°£¿¡ ÀÏÀÏÈ÷ °ü¸®ÀÚ ½Å°æ½áÁÙ Çʿ䰡 ¾ø±â ¶§¹®¿¡ ÆíÇÕ´Ï´Ù. ½Éº¼¸¯ ¸µÅ©ÀÇ ÀåÁ¡ÀÌ ¹Ù·Î ÀÌ·± °ÍÀÔ´Ï´Ù. {{{ cd /tools/bin ln -s gcc /tools/bin/cc }}} {{{ ln -vs libgcc.a `$LFS_TGT-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/'` }}} --disable-shared¸¦ »ç¿ëÇϴ°ÍÀº libgcc_eh.a ÆÄÀÏÀ» »ý¼º, ¼³Ä¡ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. Glibc ÆÐŰÁö´Â -lgcc_eh¸¦ ºôµå½Ã¿¡ »ç¿ëÇÏ°Ô µÇ¸é libgcc_eh.a¿¡ ÀÇÁ¸ÇÏ°Ô µË´Ï´Ù. ÀÌ ÀÇÁ¸¼ºÀº À§¿Í °°ÀÌ ½Éº¼¸¯¸µÅ©·Ñ ¸¸µé¾î ÁÜÀ¸·Î½á ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù. == 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¿¡ ÀÇÇØ »ç¿ëµË´Ï´Ù. == Linux API Headers ¼³Ä¡ == ¸®´ª½º Ä¿³ÎÀº ½Ã½ºÅÛÀÇ C ¶óÀ̺귯¸® »ç¿ëÀ» À§ÇØ Application Programming Interface(API)¸¦ Á¦°øÇÕ´Ï´Ù. À̰ÍÀº Linux kernel tarball ³»¿¡ ÀÖ´Â C Çì´õÆÄÀϵéÀ» »ç¿ë°¡´ÉÇϵµ·Ï ¸¸µé¾î¼­ ¼³Ä¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ, ÀÌÁ¦ ¿ì¸° Ä¿³ÎÀÇ ¾ÐÃàÀ» Ç®°í, ¼³Ä¡Çϰí, ÇÊ¿äÇÑ ÆÄÀϵéÀ» gcc°¡ ÂüÁ¶ÇÒ À§Ä¡¿¡ º¹»çÇÒ°Ì´Ï´Ù. Çì´õÆÄÀÏ ¼³Ä¡ ÁغñÇϱâ {{{ make mrproper }}} make mrproper¸¦ ½ÇÇàÇÔÀ¸·Î½á Ä¿³ÎÆ®¸®¿¡ ÀÖ´Â ºÒÇÊ¿äÇÑ °ÍµéÀÌ Á¦°ÅµÇ¾ú½À´Ï´Ù. ¸®´ª½º Ä¿³ÎÆÀ¿¡¼­´Â ´Ù¸¥ ¿©·¯ Á¾·ùÀÇ Ä¿³Î ÄÄÆÄÀÏÀü¿¡ make mrproperÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù. ÀÌÁ¦ »ç¿ëÀÚ°¡ º¼ ¼ö ÀÖ´Â Ä¿³ÎÇì´õÆÄÀÏÀÌ ÃßÃâÇÕ´Ï´Ù. {{{ make headers_check make INSTALL_HDR_PATH=dest headers_install cp -rv dest/include/* /tools/include }}} == 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 ¶óÀ̺귯¸®¸¦ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. ÀÌ ¶óÀ̺귯¸®µéÀº ¸Þ¸ð¸®ÇÒ´çÀ̳ª µð·ºÅ丮 °Ë»ö, ÆÄÀÏ¿¡ ´ëÇÑ ¿­±â¿Í ´Ý±â, Àбâ/¾²±â, ¹®ÀÚ¿­ Çڵ鸵, ÆÐÅÏ ¸ÅĪ, »ê¼ú¿¬»ê µî¿¡ ´ëÇÑ ±âº»ÀûÀÎ ¹æ¹ýµéÀ» Á¦°øÇÕ´Ï´Ù. === Glibc ¼³Ä¡ === -- ±âº» ÃÖÀûÈ­ Ç÷¡±×(including the -march and -mcpu options)µéÀ» º¯°æÇϴ°ÍÀº ±×¸® ÁÁÁö ½À°üÀÌ ¾Æ´Õ´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à¿¡ CFLAGS³ª CXXFLAG °°Àº ÀÌ¹Ì ÃÖÀûÈ­ µÇ¾îÀִ ȯ°æº¯¼öµéÀ» º¯°æÇßÀ» °æ¿ì¿¡´Â Glibc¸¦ ¼³Ä¡ÇÒ ¶§ ¿ø»óº¹±Í ½ÃÄÑÁÖ¼¼¿ä. ±âº»ÀûÀ¸·Î, Glibc¸¦ Ã¥¿¡¼­ Á¦½ÃÇϴ°ÍÀÌ ¾Æ´Ñ ´Ù¸¥ ¹æ¹ýÀ¸·Î ÄÄÆÄÀÏÇϴ°ÍÀº »ç¿ëÀÚÀÇ ½Ã½ºÅÛÀÇ ¾ÈÁ¤¼ºÀ» ÇØÄ¥ ¼ö ÀÖ½À´Ï´Ù. -- LFS 7.1¿¡¼­ rpc Çì´õÆÄÀÏÀÌ Á¤»óÀûÀ¸·Î ¼³Ä¡µÇÁö ¾Ê´Â °æ¿ì°¡ ÀÖ¾ú½À´Ï´Ù. ¿©·¯ºÐÀÇ È£½ºÆ® ½Ã½ºÅÛ¿¡ Á¦´ë·Î ¼³Ä¡µÇ¾î ÀÖ´ÂÁö È®ÀÎÇÏ°í ¸¸¾à ¼³Ä¡µÇ¾î ÀÖÁö ¾Ê´Ù¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇϽʽÿÀ: {{{ if [ ! -r /usr/include/rpc/types.h ]; then su -c 'mkdir -p /usr/include/rpc' su -c 'cp -v sunrpc/rpc/*.h /usr/include/rpc' fi }}} GCC-4.7.1·Î Glibc-2.16.0À» ºôµåÇÒ ¶§ »ý±â´Â ¹ö±×¸¦ ÇȽºÇÕ´Ï´Ù: {{{ sed -i 's/ -lgcc_s//' Makeconfig }}} Glibc¹®¼­´Â Àü¿ëµð·ºÅ丮¾È¿¡ ¼Ò½ºµð·ºÅ丮 ¹Û¿¡¼­ Glibc¸¦ ºôµåÇϴ°ÍÀ» ÃßõÇÕ´Ï´Ù: {{{ mkdir -v ../glibc-build cd ../glibc-build }}} Glibc ÄÄÆÄÀÏ Áغñ: {{{ ../glibc-2.16.0/configure \ --prefix=/tools \ --host=$LFS_TGT \ --build=$(../glibc-2.16.0/scripts/config.guess) \ --disable-profile \ --enable-add-ons \ --enable-kernel=2.6.25 \ --with-headers=/tools/include \ libc_cv_forced_unwind=yes \ libc_cv_ctors_header=yes \ libc_cv_c_cleanup=yes }}} '''¿©±â¼­ Àá±ñ.''' Glibc¸¦ ÄÄÆÄÀÏ ÇÒ ¶§´Â Àý´ë! GlibcÀÇ ¾ÐÃàÀ» Ç®¾î ³õÀº µð·ºÅ丮¿¡¼­ ÇÏ¸é ¾È µË´Ï´Ù. À§¿¡¼­µµ º¸¸é ¾Ë°ÚÁö¸¸, ¾ÐÃàÀ» Ç®¾î ³õÀº µð·ºÅ丮°¡ ¾Æ´Ï¶ó »óÀ§ µð·ºÅ丮¿¡¼­ ÀÛ¾÷À» Çϰí ÀÖÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¾ÐÃàÀ» Ç®¾î ³õÀº µð·ºÅ丮¿¡¼­ ÀÛ¾÷À» ÇÏ°Ô µÇ¸é ÀÏ´Ü, Configure¿¡¼­ ¿¡·¯°¡ ¹ß»ýÇÏ°í ¾ïÁö·Î ÄÄÆÄÀÏÀ» ÇÑ´Ù°í ÇØµµ ÄÄÆÄÀÏ µµÁß ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù. ¼³Á¤ ¿É¼ÇÀÇ ÀǹÌ: * --host=LFS_TGT, --build=$(../glibc-2.16.0/scripts/config.guess): ÀÌ µÎ°¡Áö ½ºÀ§Ä¡¸¦ ÇÔ²² »ç¿ëÇϸé GlibcÀÇ ºôµå ½Ã½ºÅÛÀº /tools ¾È¿¡ ÀÖ´Â Å©·Î½º ÄÄÆÄÀÏ·¯¿Í Å©·Î½º ¸µÄ¿¸¦ »ç¿ëÇÏ¿© Å©·Î½º ÄÄÆÄÀÏÀ» ÇÏ°Ô µË´Ï´Ù. * --disable-profile: ÇÁ·ÎÆÄÀÏ Á¤º¸ ¶óÀ̺귯¸®µéÀÇ ºôµùÀ» ºñȰ¼ºÈ­ÇÕ´Ï´Ù. ´ç½ÅÀÌ ÇÁ·ÎÆÄÀÏÀ» ¸¸µé °èȹÀ̶ó¸é ÀÌ ¿É¼ÇÀ» »©¼¼¿ä. * --enable-add-ons=linuxthreads: threading¶óÀ̺귯¸®Ã³·³ Linuxthreads add-onÀ» »ç¿ëÀ» ÇÑ´Ù°í Glibc¿¡°Ô ¾Ë·ÁÁÝ´Ï´Ù. * --enable-kernel=2.6.25: Glibc¿¡ ÄÄÆÄÀÏÇÏ´Â ¶óÀ̺귯¸®´Â Ä¿³Î 2.6.25À̰ųª À̺¸´Ù ÃֽйöÀüÀ» Áö¿øÇÕ´Ï´Ù. ¸¸¾à À̺¸´Ù ¿À·¡µÈ Ä¿³Î¹öÀüÀΰæ¿ì´Â ÄÄÆÄÀÏÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù. * --with-headers=/tools/include: Glibc¿¡°Ô Ä¿³Î Çì´õÆÄÀÏÀ» ¼³Ä¡ÇÑ µð·ºÅ丮 °æ·Î¸¦ ¸»ÇØÁÝ´Ï´Ù. * libc_cv_forced_unwind=yes: Binutils-2.22¿¡¼­ Å©·Î½ºÄÄÆÄÀϵǾú´ø ¸µÄ¿´Â Glibc°¡ ¼³Ä¡µÇ±â Àü±îÁö´Â »ç¿ëÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. À̶§¹®¿¡ configure Å×½ºÆ®¿¡¼­ force-unwind support Å×½ºÆ®°úÁ¤¿¡¼­ configure failÀÌ ÀϾ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿É¼ÇÀº fore-unwind support¸¦ Å×½ºÆ® ÇÏÁö ¾Ê°í ³Ñ¾î°¡µµ·Ï ÇØÁÝ´Ï´Ù. * libc_cv_c_cleanup=yes: À§¿Í °°Àº ÀÌÀ¯·Î configure script°¡ C cleanup handling support¸¦ Å×½ºÆ®ÇÏÁö ¾Ê°í ³Ñ¾î°¡µµ·Ï ÇØÁÝ´Ï´Ù. * libc_cv_ctors_header=yes: À§¿Í °°Àº ÀÌÀ¯·Î configure script°¡ gcc constructor support¸¦ Å×½ºÆ®ÇÏÁö ¾Ê°í ³Ñ¾î°¡µµ·Ï ÇØÁÝ´Ï´Ù. * --with-binutils=/tools/bin and --with-headers=/tools/include: ÀÌ ºÎºÐÀº Àý´ë °Çµå¸®Áö ¸»°í ±×´ë·Î Çϼ¼¿ä. ÀÌ ºÎºÐÀ» °Çµå¸®¸é ÄÄÆÄÀÏ ÀÚü°¡ ¾È µÇ°Å³ª µÈ´Ù ÇÏ´õ¶óµµ ³ªÁß¿¡ 100% ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù. configure µµÁß ´ÙÀ½°ú °°Àº °æ°í ¸Þ¼¼Áö°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ½À´Ï´Ù: {{{ configure: WARNING: *** These auxiliary programs are missing or incompatible versions: msgfmt *** some features will be disabled. *** Check the INSTALL file for required versions. }}} ÀÒ¾î¹ö¸®°Å³ª ȣȯ¼ºÀÌ ¾ø´Â msgfmtÇÁ·Î±×·¥Àº ÀϹÝÀûÀ¸·Î ÇÊ¿ä ¾ø½À´Ï´Ù, ÇÏÁö¸¸ °¡²û test suite¸¦ ½ÇÇàÇÒ¶§ ¹®Á¦¸¦ ÀÏÀ¸Åµ´Ï´Ù. ÆÐŰÁö ÄÄÆÄÀÏ: {{{ make }}} ÀÌ ÆÐŰÁö´Â test suite¿Í °°ÀÌ Á¦°øµÇÁö¸¸ ¾ÆÁ÷ C++ ÄÄÆÄÀÏ·¯¸¦ °¡Áö°í ÀÖÁö ¾Ê±â ¶§¹®¿¡ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù. '''Note''' test suite¸¦ ¼º°øÀûÀ¸·Î ½ÇÇàÇϱâ À§Çؼ­´Â locale µ¥ÀÌÅͰ¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. Locale data´Â ³¯Â¥, ½Ã°£, ÇöÀç ½Ã½ºÅÛ À¯Æ¿¸®Æ¼¿¡ ÀÇÇØ Ãâ·ÂµÇ°Å³ª ¼ö¿ëµÇ´Â µ¥ÀÌÅÍ Æ÷¸Ëµé¿¡ ´ëÇÑ Á¤º¸¸¦ °®°í ÀÖ½À´Ï´Ù. ÇöÀç test suite¸¦ ½ÇÇàÇÒ ¼ö ¾ø´Â ÀÌÀ¯´Â ¾ÆÁ÷ ÇÊ¿äÇÑ ·ÎÄÉÀÏÀ» ¼³Ä¡ÇÏÁö ¾Ê¾Ò±â ¶§¹®ÀÔ´Ï´Ù. Àû´çÇÑ ·ÎÄÉÀÏ ¼³Ä¡´Â ´ÙÀ½ Àå¿¡¼­ ÇÒ °Ì´Ï´Ù. ±×·¡µµ Glibc ·ÎÄÉÀÏÀ» ¼³Ä¡ÇÏ°í ½ÍÀ¸½Ã¸é ´ÙÀ½Àå¿¡ ÀÖ´Â Glibc-2.16.0 ºÎºÐÀ» »ìÆìº¸¼¼¿ä {{{ make install }}} '''°æ°í''' »õ·Î¿î toolchainÀÇ ±âº»±â´É(compiling and linking)À» ¼³Ä¡Çϰí Áö¿ì´Â °ÍÀÌ Áß¿äÇÑ ÀÏÀÔ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ °£´ÜÇÑ ÇÁ·Î±×·¥À» Â¥¼­ Á¦´ë·Î ¼³Ä¡µÇ¾ú´ÂÁö¸¦ È®ÀÎÇØ º¾½Ã´Ù. {{{ echo 'main(){}' > dummy.c cc dummy.c readelf -l a.out | grep ': /tools' }}} Áö±Ý±îÁö ¸ðµç ÀÛ¾÷À» Àß µû¶ó Çß´Ù¸é ¿¡·¯´Â ¾øÀ» °ÍÀ̰í, ´ÙÀ½°ú ¸Þ¼¼Áö¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. [ Requesting program interpreter: /tools/lib/ld-linux.so.2 ] (´ÙÀ̳ª¹Í ¸µÄ¿ À̸§¿¡ Ç÷§ÆûÀÇ Æ¯Â¡ÀÌ ³ªÅ¸³ª ÀÖ½À´Ï´Ù.) ´ÙÀ̳ª¹Í ¸µÄ¿¸¦ ¼³Ä¡ÇÒ ¶§ ¼³Ä¡°æ·Î·Î½á /tools/lib ¸¦ ¼³Á¤ÇØ Áà¾ß ÇÕ´Ï´Ù.(prefix = /tools/lib) À§¿Í °°Àº ¸Þ¼¼Áö°¡ Ãâ·ÂµÇÁö ¾Ê°Å³ª, ¾Æ¹«·± ¸Þ¼¼Áö°¡ ¾ø´Ù¸é ¾î¶² °ÍÀÌ ½É°¢ÇÏ°Ô À߸øµÈ °ÍÀÔ´Ï´Ù. ¼³Ä¡°úÁ¤Áß¿¡ ¾îµð¿¡¼­ ¹®Á¦°¡ ¹ß»ýÇß´ÂÁö ¾Ë¾Æº¸°í Á¶»çÇϴ°ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¼³Ä¡°úÁ¤ÀÌ ¿ÏÀüÈ÷ Á¾·áµÇ±â Àü±îÁö´Â À§¿Í °°Àº »óȲÀÌ ¹ß»ýÇØµµ ÀÏÀÏÀÌ ¹ÝÀÀÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ù°, cc ´ë½Å¿¡ gcc¸¦ »ç¿ëÇØ¼­ sanity check¸¦ ¹Ýº¹Çؼ­ ÇÑ´Ù. À§¿Í °°Àº ÀÛ¾÷Àº /tools/bin/ccÀÇ symlink°¡ À߸ø µÇ¾îÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. GCC-3.3.2 - Pass 1 ÀνºÅç ¿¡ ´Ù½Ã °¡¼­(ÂüÁ¶Çؼ­) symlink¸¦ ¼öÁ¤ÇØ ÁÖ¼¼¿ä. µÎ¹øÂ°, $PATH ȯ°æº¯¼ö°¡ Á¦´ë·Î ÁöÁ¤µÇ¾ú´ÂÁö È®ÀÎÇÏÀÚ. $PATH ȯ°æº¯¼ö°¡ Á¦´ë·Î ÁöÁ¤µÇ¾ú´ÂÁö È®ÀÎÇϱâ À§Çؼ­ echo $PATH ¸¦ ÀÔ·ÂÇØº¸ÀÚ. echo $PATH¸¦ ÀÔ·ÂÇßÀ»¶§ ³ª¿À´Â ¸®½ºÆ®¿¡ /tools/bin°¡ ÀÖÀ¸¸é Á¦´ë·Î ÁöÁ¤µÇ¾ú´Ù°í º¼ ¼ö ÀÖ´Ù. ¸¸¾à $PATHȯ°æº¯¼ö°¡ À߸øµÇ¾ú´Ù¸é lfs»ç¿ëÀÚ·Î ·Î±×ÀÎÀ» ÇÏÁö ¾Ê¾Ò°Å³ª ȯ°æ¼³Á¤Çϱâ Àå¿¡¼­ ¹«¾ð°¡ ½Ç¼ö¸¦ Çß´Ù´Â ÀǹÌÀÌ´Ù. ¼¼¹øÂ°, ¼³Á¤ÆÄÀÏÀ» º¯°æÇÏ°í ³ª¼­ ¹«¾ù°¡ ¹®Á¦°¡ »ý±æ ¶§µµ ÀÖ´Ù. ±×·±°æ¿ì¿¡´Â Áö³­¹ø¿¡ ÃßõÇѰÍó·³ cut-and-paste(¿øº»¿¡¼­ °®´ÙºÙÀ̱â)¸¦ ÀÌ¿ëÇØ¼­ ¼³Á¤ÆÄÀÏÀ» ´Ù½Ã ¸¸µé¾î¶ó. ¸ðµç ÀÛ¾÷ÀÌ ¸¸Á·½º·´°Ô ³¡³µ´Ù¸é, test filesÀ» Áö¿ì¼¼¿ä. {{{ rm dummy.c a.out }}} ---- ÀÚ, self-contained toolchainÀÇ ¼³Ä¡°¡ ¿Ïº®ÇÏ°Ô ³¡³µ°í, À̰͵éÀº ³ª¸ÓÁö Àӽõµ±¸µéÀ» build Çϴµ¥ »ç¿ëµÉ °ÍÀÔ´Ï´Ù. == Binutils-2.22 - Pass 2 == ºôµå ½Ã°£: 1.1 SBU ÇÊ¿ä ¿ë·®: 407 MB === Bintuils ¼³Ä¡Çϱâ === ÄÄÆÄÀÏ·¯ ÃÖÀûÈ­½Ã¿¡ ºôµå ½ÇÆÐ¸¦ ¸·±â À§ÇØ ´ÙÀ½°ú °°ÀÌ ÆÐÄ¡¸¦ Àû¿ëÇÕ´Ï´Ù. {{{ patch -Np1 -i ../binutils-2.22-build_fix-1.patch }}} ¼Ò½º µð·ºÅ丮 ¹Û¿¡¼­ »õ·Î¿î ºôµå µð·ºÅ丮¸¦ ¸¸µì´Ï´Ù. {{{ mkdir -v ../binutils-build cd ../binutils-build }}} Bintuils ÄÄÆÄÀÏÀ» ÁغñÇÕ´Ï´Ù: {{{ CC=$LFS_TGT-gcc \ AR=$LFS_TGT-ar \ RANLIB=$LFS_TGT-ranlib \ ../binutils-2.22/configure \ --prefix=/tools \ --disable-nls \ --with-lib-path=/tools/lib }}} »õ·Î¿î configure ¿É¼Çµé: * CC=$LFS_TGT-gcc AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib: È£½ºÆ® ½Ã½ºÅÛ¿¡ ÀÖ´Â ÄÄÆÄÀÏ·¯ ´ë½Å Å©·Î½º ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇϵµ·Ï ÀÌ·± º¯¼öµéÀ» È®½ÇÇÏ°Ô Á¤ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. * --with-lib-path=/tools/lib: À̰ÍÀº configure ½ºÅ©¸³Æ®°¡ ¶óÀ̺귯¸® °Ë»ö °æ·Î·Î host½Ã½ºÅÛÀ» »ç¿ëÇÏÁö ¾Ê°í /tools/libÀ» Ž»öÇϵµ·Ï ÇÕ´Ï´Ù. ÆÐŰÁö¸¦ ÄÄÆÄÀÏÇÕ´Ï´Ù: {{{ make }}} ÆÐŰÁö¸¦ ¼³Ä¡ÇÕ´Ï´Ù: {{{ make install }}} ÀÌÁ¦ ´ÙÀ½ÀåÀÇ "Re-adjusting" ºÎºÐÀ» À§ÇÑ ¸µÄ¿¸¦ ¹Ì¸® ÁغñÇØµÓ´Ï´Ù. {{{ make -C ld clean make -C ld LIB_PATH=/usr/lib:/lib cp -v ld/ld-new /tools/bin }}} ÆÄ¶ó¹ÌÅÍ ¼³¸í: * -C ld clean: make ÇÁ·Î±×·¥¿¡°Ô "ld"¶ó´Â ÇÏÀ§ µð·ºÅ丮³»¿¡ ÄÄÆÄÀÏµÈ ¸ðµç ÆÄÀÏÀ» Áö¿ì¶ó°í ¸»ÇÕ´Ï´Ù. * -C ld LIB_PATH=/usr/lib:/lib: ÀÌ ¿É¼ÇÀº ld ÇÏÀ§ µð·ºÅ丮 ³»¿¡ ÀÖ´Â ¸ðµç °ÍµéÀ» ´Ù½Ã ºôµåÇ϶ó´Â °ÍÀÔ´Ï´Ù. LIB_PATH¶ó´Â Makefile º¯¼ö¸¦ ÁöÁ¤Çؼ­ ÀÓ½Ã ÅøÀ» ¼³Ä¡Çϱâ À§ÇØ º¯°æÇß´ø ¶óÀ̺귯¸® °æ·Î¸¦ ´Ù½Ã ¿ø·¡ÀÇ µðÆúÆ®°ªÀ¸·Î µÇµ¹·Á³õ½À´Ï´Ù. ÀÌ·¯ÇÑ Áغñ´Â ´ÙÀ½ ÀåÀ» À§ÇØ ÇÊ¿äÇÑ °úÁ¤ÀÔ´Ï´Ù. == GCC-4.7.1 - Pass 2 == ¿¹»ó ½Ã°£: 7.1 SBU ÇÊ¿ä ¿ë·®: 1.8 GB === 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 }}} == Tcl-8.5.12 == Tcl ÆÐŰÁö´Â Tool Command Language¸¦ Æ÷ÇÔÇÕ´Ï´Ù. ºôµå ½Ã°£: 0.4 SBU ÇÊ¿ä ¿ë·®: 33 MB === Tcl ¼³Ä¡Çϱâ === ÀÌ ÆÐŰÁö´Â ÀÌ ´ÙÀ½¿¡ ¼³Ä¡µÉ Expect, DejaGNU, Check°ú ÇÔ²² test suite¸¦ ½ÇÇàÇϴµ¥ ÇÊ¿äÇÕ´Ï´Ù. Tcl ÄÄÆÄÀÏÀ» ÁغñÇÕ´Ï´Ù {{{ cd unix ./configure --prefix=/tools }}} ÆÐŰÁö¸¦ ºôµåÇÕ´Ï´Ù {{{ make }}} ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ¿Ï·áµÇ¾ú½À´Ï´Ù. test suite´Â ÀÓ½Ã ÅøµéÀ» ºôµåÇÏ´Â ÀÌ Àå¿¡¼­´Â ¹Ýµå½Ã ½ÇÇàÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÇÏÁö¸¸ ±×·¡µµ test suite¸¦ ½ÇÇàÇØ¾ß°Ú´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇϽʽÿÀ: {{{ TZ=UTC make test }}} Tcl test suite´Â ¾Æ¸¶µµ È£½ºÆ® Á¶°ÇÀÌ ÃæºÐÇÏÁö ¾Ê¾Æ ½ÇÆÐÇÒ °ÍÀÔ´Ï´Ù. ¿©±â¼­ test suite¸¦ ½ÇÆÐÇØµµ ³î¶ö ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ''TZ=UTC''¶ó´Â ÆÄ¶ó¹ÌÅʹ ŸÀÓÁ¸À» test suite°¡ ½ÇÇàµÇ´Â µ¿¾È¿¡¸¸ Coordinated Universal Time(UTC) ¶Ç´Â Greenwich Mean Time(GMT)·Î ¼³Á¤ÇØÁÝ´Ï´Ù. ÆÐŰÁö¸¦ ¼³Ä¡ÇÕ´Ï´Ù: {{{ make install }}} ¼³Ä¡µÈ ¶óÀ̺귯¸®°¡ ¾²±â°¡ °¡´ÉÇϵµ·Ï ±ÇÇÑÀ» ¼³Á¤ÇØÁÖ¾î µð¹ö±ë ½Éº¼ÀÌ ³ªÁß¿¡ Áö¿öÁú ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. {{{ chmod -v u+w /tools/lib/libtcl8.5.so }}} TclÀÇ Çì´õ¸¦ ¼³Ä¡ÇÕ´Ï´Ù. {{{ make install-private-headers }}} ÀÌÁ¦ ÇÊ¿äÇÑ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾îÁÝ´Ï´Ù. {{{ ln -sv tclsh8.5 /tools/bin/tclsh }}} === Contents of Tcl === ¼³Ä¡µÇ´Â ÇÁ·Î±×·¥: tclsh(link to tclsh8.5), tclsh8.5 ¼³Ä¡µÇ´Â ¶óÀ̺귯¸®: libtcl8.5.so, libtclstub8.5a == 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. === Expect ¼³Ä¡ === ¸ÕÀú ExpectÀÇ configure ½ºÅ©¸³Æ®°¡ /usr/local/bin/stty´ë½Å¿¡ /bin/stty¸¦ »ç¿ëÇϵµ·Ï ¼³Á¤ÇØÁÝ´Ï´Ù. {{{ cp -v configure{,.orig} sed 's:/usr/local/bin:/bin:' configure.orig > configure }}} Expect ÄÄÆÄÀÏ ÁغñÇϱâ: {{{ ./configure --prefix=/tools --with-tcl=/tools/lib \ --with-tclinclude=/tools/include }}} configure optionsÀÇ ÀǹÌ: * --with-tcl=/tools/lib: configure script°¡ TclÀÌ ¼³Ä¡µÈ Àӽõð·ºÅ丮ÀÇ À§Ä¡¸¦ ãÀ» ¼ö ÀÖ°Ô ÁöÁ¤ÇØ ÁÝ´Ï´Ù.¿ì¸®´Â LFS½Ã½ºÅÛÀ» »õ·Î ±¸ÃàÇϰí Àֱ⶧¹®¿¡ ÀÌ¹Ì È£½ºÆ®½ÃÅÛ¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â (¹èÆ÷ÆÇÀ¸·Î ¼³Ä¡ÇصÐ) TclÀ» ã´Â°ÍÀ» ¿øÇÏÁö ¾Ê½À´Ï´Ù. * --with-tclinclude=/tools/include: TclÀÇ internal Çì´õÀÇ À§Ä¡¸¦ ¸»ÇØÁÝ´Ï´Ù. ''configure''½Ã¿¡ ÀÚµ¿ÀûÀ¸·Î TclÀÇ Çì´õÀ§Ä¡¸¦ ¹ß°ßÇÏÁö ¸øÇÒ°æ¿ì ½ÇÆÐÇÒ °æ¿ì¸¦ ´ëºñÇØ ¼³Á¤ÇØÁÝ´Ï´Ù. package ÄÄÆÄÀÏÇϱâ: {{{ make }}} ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, Tcl test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä. ±×·¯³ª È£½ºÆ®ÀÇ »óÅÂ(¼³Á¤)¿¡ µû¶ó¼­(that are not fully understood)Tcl test suits°¡ ½ÇÆÐÇÏ´Â °æ¿ìµµ ÀÖ´Ù´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ¿©±â¼­ test suits½ÇÆÐÇØµµ ³î¶óÁø ¸¶¼¼¿ä( ½ÅÁßÇÏ°Ô °í·ÁÇÒ ÇÊ¿ä´Â ¾ø´Ù.) {{{ make test }}} ¼³Ä¡Çϱâ: {{{ make SCRIPTS="" install }}} make parameterÀÇ ÀǹÌ: * SCRIPTS="": À̿ɼÇÀº expect scriptsÁß¿¡¼­ ºÒÇÊ¿äÇÑ °ÍµéÀ» ¼³Ä¡ÇÏ´Â °ÍÀ» ¹æÁöÇØ ÁÝ´Ï´Ù. ÀÚ, ÀÌÁ¦ Tcl°ú Expect ¼Ò½º µð·ºÅ丮¸¦ »èÁ¦Çصµ µË´Ï´Ù. === Expect ³»¿ë === ¼³Ä¡µÈ ÇÁ·Î±×·¥: expect ¼³Ä¡µÈ ¶óÀ̺귯¸®: libexpect-5.45.a === ¿ä¾à === expect "talks" to other interactive programs according to a script. == 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. === DejaGnu ¼³Ä¡ === DejaGnu ÄÄÆÄÀÏ ÁغñÇϱâ: {{{ ./configure --prefix=/tools }}} ÆÑŰÁö ºôµåÇÏ°í ¼³Ä¡Çϱâ: {{{ make install }}} === DejaGnu ³»¿ë === ¼³Ä¡µÈ ÇÁ·Î±×·¥: runtest === ¿ä¾à === runtest is the wrapper script that finds the proper expect shell and then runs DejaGnu. == Check-0.9.8 == ºôµå ½Ã°£: 0.1 SBU ÇÊ¿ä ¿ë·®: 6.9 MB === Check ¼³Ä¡Çϱâ === Check ÄÄÆÄÀÏÀ» À§ÇØ ÁغñÇÕ´Ï´Ù: {{{ ./configure --prefix=/tools }}} ÆÐŰÁö¸¦ ºôµåÇÕ´Ï´Ù: {{{ make }}} ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ¿Ï·áµÇ¾ú½À´Ï´Ù. ¿¹Àü¿¡ ¾ê±âÇß´ø°Íó·³ ¿©±â¼­ test suite¸¦ ½ÇÇàÇÏ´Â °ÍÀº Àǹ«´Â ¾Æ´Õ´Ï´Ù¸¸ È®ÀÎÇÏ°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» ½ÇÇàÇϽʽÿÀ: {{{ make check }}} test suite¸¦ È®ÀÎÇÏ´Â °ÍÀº ´ë·« 4 SBU Á¤µµ °É¸³´Ï´Ù. ÆÐŰÁö¸¦ ¼³Ä¡ÇÕ´Ï´Ù {{{ make install }}} === Contents of Check === ¼³Ä¡µÇ´Â ¶óÀ̺귯¸®: libcheck.a, libcheck.so == 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. === Ncurses-5.9 ¼³Ä¡ === ¾ÐÃà Ç®±â: {{{ mkdir -p $LFS/build/ncurses_build cd $LFS/build/ncurses_build tar zxvf /mnt/source/ncurses-5.4.tar.gz -C ./ }}} Ncurses ÄÄÆÄÀÏ ÁغñÇϱâ {{{ cd $LFS/build/ncurses_build/ncurses-5.4 ./configure --prefix=/tools --with-shared \ --without-debug --without-ada --enable-overwrite }}} Configure optionÀÇ ÀǹÌ: * --without-ada: ÀÌ·¸°Ô Çϸé, HOST ½Ã½ºÅÛ¿¡ Ada compiler°¡ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ´õ¶óµµ Ncurses¸¦ ÄÄÆÄÀÏ ÇÒ ¶§, Ada bindingsÀ» ÇÏÁö ¾Ê°Ô ÇÑ´Ù. ÀÏ´Ü ¿ì¸®°¡ chrootȯ°æº¯¼ö·Î µé¾î °¬À» ¶§ HOST½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ Ada¸¦ »ç¿ëÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ÀÌ ¿É¼ÇÀº ²À ÁÖ¾î¾ß ÇÑ´Ù. * --enable-overwrite: ´Ù¸¥ ÆÑŰÁöµéÀÌ NcursesÇì´õ ÆÄÀϵéÀ» ÂüÁ¶ÇÒ ¼ö ÀÖµµ·Ï /toos/include/ncurses ´ë½Å /tools/include·Î ¼³Ä¡Çϵµ·Ï ÁöÁ¤ÇØ ÁÖ´Â ¿ªÈ°À» ÇÑ´Ù. ÇÁ·Î±×·¥°ú ¶óÀ̺귯¸®µéÀ» ÄÄÆÄÀÏÇϱâ: {{{ make }}} Ncurses¹®¼­µé°ú ÇÁ·Î±×·¥µéÀ» ¼³Ä¡Çϱâ: {{{ make install }}} ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼±the Section called Contents of Ncurses in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä. == 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. === 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 ¸¦ ÂüÁ¶Çϼ¼¿ä. == Bzip2-1.0.6 ¼³Ä¡ == Approximate build time: <=0.1 SBU Required disk space: 5.7 MB GCC¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé : Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Make. === Bzip2 ¼³Ä¡ === ´Ù¿î·Îµå °ø½Ä »çÀÌÆ®: [ftp://sources.redhat.com/pub/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 ¸¦ ÂüÁ¶Çϼ¼¿ä. == 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. === Coreutils ¼³Ä¡ === Coreutils has an issue when compiled against Glibc-2.3.3. ÆÐÄ¡¸¦ ¾ÈÇßÀ»¶§, Coreutils utilities(head, tail, sort etc)Áß ÀϺΠÇÁ·Î±×·¥Àº Áö³­ 30³âµ¿¾È »ç¿ëµÇ¾î¿Ô´ø ÀüÅëÀûÀÎ ¹®¹ý°ú Ãæµ¹ÀÌ »ý±æ°ÍÀÔ´Ï´Ù. ¿À·¡µÈ syntaxµéÀº Coreutils°¡ ¿©·¯Àå¼Ò¿¡¼­ updateµÉ¶§ ¾ø¾îÁöÁö ¾Ê°í, »õ·Î¿î ¹öÀü¿¡¼­µµ Áö¿øÀÌ µÇ¾î¿Ô½À´Ï´Ù. ¼¼ºÎ»çÇ×µéÀº ÆÐÄ¡¸í·ÉÀ» º¸¸é ¾Ë ¼ö ÀÖ½À´Ï´Ù. Use of this patch is by no means compulsory but opting not to use it means you'll have deal with the consequences yourself, i.e. patch the many software packages that use the old syntax. Coreutils ÄÄÆÄÀÏ ÁغñÇϱâ: {{{ ./configure --prefix=/tools --enable-install-program=hostname }}} '''--enable-install-program=hostname''' ±âº»°ªÀº »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌÁö¸¸ Perl test suite¸¦ ½ÇÇàÇÒ ¶§ ÇÊ¿äÇϱ⠶§¹®¿¡ ¼³Á¤ÇØ ÁÝ´Ï´Ù. ºôµåÇÏ°í ¼³Ä¡µÉ ¹ÙÀ̳ʸ®¸¦ À§ÇÑ hostnameÀ» ¼³Á¤ÇÕ´Ï´Ù. package ÄÄÆÄÀÏÇϱâ: {{{ make }}} ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤ Coreutils test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä: {{{ make RUN_EXPENSIVE_TESTS=yes check }}} make parameterÀÇ ÀǹÌ: * RUN_EXPENSIVE_TESTS=yes: This tells the test suite to run several additional tests that are considered relatively expensive on some platforms, ±×·¸Áö¸¸ ¸®´ª½º¿¡¼­´Â ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù. ÆÑŰÁö ¼³Ä¡Çϱâ: {{{ make install }}} ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Coreutils in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä. == 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. === 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 ¸¦ ÂüÁ¶Çϼ¼¿ä. == File-5.11 == ÆÄÀÏ¿¡ ´ëÇÑ Å¸ÀÔÀ» °áÁ¤ÇØÁÖ´Â À¯Æ¿¸®Æ¼ÀÔ´Ï´Ù. ºôµå ½Ã°£: 0.1 SBU ÇÊ¿ä ¿ë·®: 12.4 MB === File ¼³Ä¡Çϱâ === ÄÄÆÄÀÏÀ» ÁغñÇÕ´Ï´Ù: {{{ ./configure --prefix=/tools }}} ÆÐŰÁö¸¦ ÄÄÆÄÀÏÇÕ´Ï´Ù {{{ make }}} ÄÄÆÄÀÏÀÌ ÀÌÁ¦ ³¡³µ½À´Ï´Ù. test suite´Â Àǹ«´Â ¾Æ´ÏÁö¸¸ Å×½ºÆ®ÇØ¾ß°Ú´Ù¸é ´ÙÀ½À» ½ÇÇàÇϽʽÿÀ: {{{ make check }}} ÆÐŰÁö¸¦ ¼³Ä¡ÇÕ´Ï´Ù. {{{ make install }}} == 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. === 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 ¸¦ ÂüÁ¶Çϼ¼¿ä. == 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. === Gawk ¼³Ä¡ === Gawk ÄÄÆÄÀÏ ÁغñÇϱâ: {{{ ./configure --prefix=/tools }}} package ÄÄÆÄÀÏÇϱâ: {{{ make }}} ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, Gawk test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä: {{{ make check }}} ¼³Ä¡Çϱâ: {{{ make install }}} ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± 6Àå GawkÀÇ ³»¿ë ¸¦ ÂüÁ¶Çϼ¼¿ä. . == 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. === 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 ¸¦ ÂüÁ¶Çϼ¼¿ä. == 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. === Grep ¼³Ä¡ === Grep ÄÄÆÄÀÏ ÁغñÇϱâ: {{{ ./configure --prefix=/tools }}} ÇÁ·Î±×·¥ ÄÄÆÄÀÏÇϱâ: {{{ make }}} ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» grep test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä: {{{ make check }}} ÀÌ ÆÑŰÁöÀÇ ¹®¼­µé°ú ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ: {{{ make install }}} ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Grep in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä. == 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. === Gzip ¼³Ä¡ === Gzip ÄÄÆÄÀÏ ÁغñÇϱâ: {{{ ./configure --prefix=/tools }}} package ÄÄÆÄÀÏÇϱâ: {{{ make }}} ¼³Ä¡Çϱâ: {{{ make install }}} ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Gzip in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä. == 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 }}} == 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. === Make ¼³Ä¡ === Make ÄÄÆÄÀÏ ÁغñÇϱâ: {{{ ./configure --prefix=/tools }}} ÄÄÆÄÀÏ Çϱâ: {{{ make }}} ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» make test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä: {{{ make check }}} ÀÌ ÆÑŰÁöÀÇ ¹®¼­µé°ú ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ: {{{ make install }}} ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Make in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä. == 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. === 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 ¸¦ ÂüÁ¶Çϼ¼¿ä. == 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. === 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 ¸¦ ÂüÁ¶Çϼ¼¿ä. == 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. === Sed ¼³Ä¡ === Sed ÄÄÆÄÀÏ ÁغñÇϱâ: {{{ ./configure --prefix=/tools }}} ÆÐŰÁö ÄÄÆÄÀÏÇϱâ: {{{ make }}} ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» Sed test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä: {{{ make check }}} ÀÌ ÆÑŰÁöÀÇ ¹®¼­µé°ú ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ: {{{ make install }}} ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Sed in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä. == 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. === 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 ¸¦ ÂüÁ¶Çϼ¼¿ä == 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. === 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 ¸¦ ÂüÁ¶Çϼ¼¿ä == Xz-5.0.4 == ºôµå ½Ã°£: 0.2 SBU ÇÊ¿ä °ø°£: 16.3 MB === Xz-Utils ¼³Ä¡Çϱâ === Xz ÄÄÆÄÀÏÀ» ÁغñÇÕ´Ï´Ù: {{{ ./configure --prefix=/tools }}} ÆÐŰÁö¸¦ ÄÄÆÄÀÏ ÇÕ´Ï´Ù {{{ make }}} ÆÐŰÁö¸¦ ¼³Ä¡ÇÕ´Ï´Ù {{{ make install }}} == 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ÇÏ°í ¼³Ä¡ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. == ¼ÒÀ¯±Ç ¹Ù²Ù±â == '''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 ½Ã½ºÅÛÀ» ºôµåÇϱâ À§ÇØ ÇÊ¿äÇÑ °æ¿ìµµ ÀÖ½À´Ï´Ù. ¹é¾÷ÇÒÁö ¸»Áö´Â º»ÀεéÀÇ ¼±ÅÃÀÔ´Ï´Ù.