µ±Ç°Ê±Çø GMT+8, ÏÖÔÚʱ¼äÊÇ 2008-7-5 12:17 ÓοÍ: ×¢²á µÇ¼ ½öµÇ¼ÂÛ̳ | ËÑË÷ °ïÖú


±êÌâ: Magic Linux¿ª·¢ÈëÃÅÖ¸ÄÏ(Ò»)
  ±¾Ö÷ÌâÓÉ npcomet ÓÚ 2008-1-20 01:44 Öö¥ 
Jagen
°æÖ÷
Rank: 7Rank: 7Rank: 7



UID 205889
¾«»ª 0
»ý·Ö 66
Ìû×Ó 43
ÔĶÁȨÏÞ 255
×¢²á 2005-11-21
״̬ ÀëÏß
·¢±íÓÚ 2008-1-20 01:36  ×ÊÁÏ  ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ  Ìí¼Ó Jagen ΪMSNºÃÓѠͨ¹ýMSNºÍ Jagen ½»Ì¸ QQ
Magic Linux¿ª·¢ÈëÃÅÖ¸ÄÏ(Ò»)

    ÖÆ×÷Ò»¸öLinux·¢²¼ÄÑÂð£¿
    ºÜÄÑ¡£
    ÖÆ×÷Ò»¸öLinux·¢²¼°æÐèÒªºÜ¸ßÉîµÄ¼¼ÊõÂð£¿
    ÄãÄÜÐС£

    ºÃ¶àÈ˺ÜÏë²ÎÓëMagic LinuxµÄ¿ª·¢£¬µ«¶àÊý²»Öª´ÓºÎÈëÊÖ¡£
    ÆäʵºÜ¼òµ¥£¬ÄãÖ»ÐèҪһ̨¹©ÄãÖ§ÅäµÄ386ÒÔÉÏÅäÖÃÇÒÄܹ»ÉÏÍøµÄµçÄÔ£¬
ÒÔ¼°Ò»¸öÄܹ»¹¤×÷ÔÚÆäÉϵÄgcc»·¾³¡£
    ¶Ô£¬Õâ¾Í¹»ÁË£¬ÆäËûµÄÈí¼þ¶¼ÊÇÔÚ°ïÖúÄã¸ü¿ìµÄ¡¢¸ü¼ò±ãµÄÍê³ÉÕâ¸ö¹¤
×÷¡£ÒòΪLinuxÔ´×ÔÓÚÍøÂ磬·¢Õ¹ÓÚÍøÂ磬Äܹ»ÉÏÍø²ÅÄܵõ½Linux£»Linux
×ÔÉí¼°ÔÚÆäÖ®ÉÏÔËÐеĴó¶àÊýÈí¼þ¶¼ÊÇÒÔÔ´´úÂ뷽ʽÌṩ£¬ÇÒ·Çgcc²»ÄÜÍê³É
Äں˵ıàÒë¡£ÓµÓÐÁËÕâЩ£¬Äã¾Í¿ÉÒÔ¿ªÊ¼½«ÕâЩԴ´úÂëת»¯Îª¿ÉÔËÐеÄÄںˡ¢
ShellºÍһЩӦÓÃÈí¼þ£¬Ò»µãÒ»µãµÄ¾Í¹¹³ÉÁËÒ»¸öÍêÕûµÄ¿ÉÓõÄLinuxϵͳ¡£
    ±¾ÎľÍÊǽ²ÊöÈçºÎ¿ªÊ¼ÕâЩ¹¤×÷µÄ¡£ÎÒ»á¼Ù¶¨Äã¶ÔLinuxÓÐÒ»¶¨µÄÁ˽⣬
ʹÓùýÈç:cp¡¢mv¡¢rmµÈ³£ÓÃÃüÁî£¬Ôø¾­³É¹¦µÄÔÚij¸öLinuxϵͳÖа²×°¹ýij¸ö
ÒÔÔ´´úÂëÐÎʽ·¢²¼µÄÈí¼þ£¬ÓÐһЩC/C++»òÆäËûÓïÑԵľ­Ñé¡£
    ÁíÍ⣬ÎÒËùÌáµ½µÄgcc»·¾³²¢²»Êǵ¥Ö¸gcc±¾Éí£¬¶øÊÇһЩÓëgccÏཻ֯µÄ
Èí¼þ¼¯ºÏ£¬ËüÃǹ²Í¬¹¤×÷£¬Íê³É´ÓÔ´´úÂëµ½¿ÉÖ´ÐгÌÐòµÄת»»¹ý³Ì£¬Õâ¸ö¹ý³Ì
Ò»°ã±»³ÆÖ®Îª´´½¨¡£

µÚÒ»Õ ¹¤¾ßÁ´µÄÖÆ×÷

    ÔÚÕýʽ¿ªÊ¼Ç°£¬ÎÒ»¹ÒªÈÃÄãÁ˽âÒ»¸öÖØÒªµÄ֪ʶ£¬ÄǾÍÊDZàÒëÆ÷¡¢Á¬½ÓÆ÷
ºÍ³ÌÐò¿âËûÃÇÈýÕßÖ®¼äµÄ¹ØÏµ£¬Èç¹ûÄãÒѾ­·Ç³£Á˽âÁË£¬¿ÉÒÔÂÔ¹ýÕâЩÄÚÈÝ¡£
±àÒëÆ÷Ö»Êǽ«Ô´´úÂë·­Òë³É¶ÔÓ¦µÄ»úÆ÷´úÂ룬µ«ÊÇÕâ¸öʱºòÕâЩ´úÂëÊDz»ÄÜÖ´
Ðеģ¬ÒòΪ¼ÈûÓÐÅÅÁкÃÖ´ÐÐ˳ÐòҲûÓÐÖ¸¶¨´ÓÄÄÀ↑ʼ£»³ÌÐò¿âʵÏÖÁËһЩ
³ÌÐò±ØÒªµÄÐÐΪ£¬±ÈÈçÄãÒªÊä³öһЩÄÚÈݵ½ÆÁÄ»»ò´Ó¼üÅÌ»ñµÃÊäÈëµÈ£»Á¬½ÓÆ÷
½«±àÒëÆ÷²úÉúµÄ»úÆ÷´úÂë½øÐÐÅÅÐò²¢¸æËß¼ÆËã»ú(ÑϸñÀ´½²ÊDzÙ×÷ϵͳ)´Óʲô
µØ·½¿ªÊ¼Ö´ÐУ¬µ±³ÌÐòÐèÒªÊä³öһЩÄÚÈݵ½ÆÁÄ»»ò´Ó¼üÅÌ»ñµÃÊäÈëʱ£¬ÇëÇó³Ì
Ðò¿âÍê³ÉÕâЩÊÂÇé¡£ËäÈ»ÕâЩ˵·¨ÏԵúܲ»×¨Òµ£¬µ«ÊÇ×ãÒÔ°ïÖúÄãÀí½âËüÃÇÈý
ÕßÖ®¼äµÄ¹ØÏµÁË¡£Èç¹ûÒª»ñµÃ¸üΪרҵ¡¢ÏêϸµÄ֪ʶÇëÔĶÁÏà¹Ø×¨ÒµÊé¼®¡£
    Ò»¸öÄܹ»Õý³£¹¤×÷µÄgcc»·¾³£¬ÐèÒªÈý¸öÔ´´úÂë°üµÄÖ§³Ö£ºbinutils¡¢
gccºÍglibc£¬ËüÃÇ·Ö±ðÌṩÁËÁ¬½ÓÆ÷¡¢±àÒëÆ÷ºÍ³ÌÐò¿â¡£ÆäʵËûÃDz¢²»½ö½öÌá
¹©ÁËÕâЩÄÚÈÝ:
    binutilsÊÇÒ»¸ö¶þ½øÖƹ¤¾ß¼¯ºÏ£¬°üº¬ÁË»ã±àÆ÷¡¢·´»ã±àÆ÷¡¢Á¬½ÓÆ÷¡¢
elf¿ÉÖ´ÐÐÎļþ·ÖÎöÆ÷µÈÖØÒª¹¤¾ß£¬ÕâЩ¹¤¾ßÔÚ½øÐÐLinux¸÷ÖÖÓ¦ÓõĿª·¢Ê±£¬
·¢»Óמ޴óµÄ×÷Óá£Äã¿ÉÒÔÔÚ/usr/binĿ¼ÖÐÕÒµ½ËûÃÇ¡£
    gccÊÇÒ»¸ö±àÒëÆ÷¼¯ºÏ£¬°üº¬ÁËC¡¢C++¡¢Objective-C¡¢Fortran¡¢JavaºÍ
AdaÓïÑÔ£¬Í¬Ê±ÎªÕâЩÓïÑÔÌṩÁËһЩ±ê×¼¿â£¬Èç:libstdc++¡¢libgcj£¬¡­¡­¡£
gccµÄCÊÇLinuxµÄ±ê×¼±àÒëÆ÷£¬linuxÄÚºËÍêÈ«ÒÀÀµÓÚgcc£¬ÆäËû±àÒëÆ÷²»ÄܱàÒë
linuxÄںˡ£ÓÉÓÚABI(Application Binary Interface)µÄ²»¼æÈÝ£¬ÆäËû±àÒëÆ÷
Ò²²»ÊʺÏLinuxÉϵĴó¶àÊýÈí¼þµÄ±àÒ룬ÓÈÆäÄÇЩʹÓÃC++×÷Ϊ¿ª·¢ÓïÑÔµÄÈí¼þϵ
ͳ¡£Ä¿Ç°Intel C/C++±àÒëÆ÷¿ªÊ¼¼æÈÝgccµÄABI£¬Òò´ËÏÖÔÚ¿ÉÒÔ²ÉÓÃIntel C/C++
±àÒëÆ÷´´½¨LinuxÉÏʹÓÃC/C++¿ª·¢µÄÈí¼þϵͳ£¬µ«Äں˲»ÐС£gcc±»°²×°ÔÚ
/usr/bin¡¢/usr/libºÍ/usr/includeĿ¼ÖС£
    glibcÊÇÌṩϵͳµ÷Óúͻù±¾º¯ÊýµÄC¿â£¬±ÈÈçopen£¬malloc£¬printfµÈµÈ£¬
ËùÓж¯Ì¬Á¬½ÓµÄ³ÌÐò¶¼ÒªÓõ½Ëü¡£ËüÊÇÓû§³ÌÐòÓëÄں˽»Á÷µÄ±ê×¼½Ó¿Ú¡£
    ÕâÈý¸ö°üÔÚÒ»ÆðÏ໥×÷Óã¬À´Íê³ÉLinuxµÄËùÓд´½¨ÈÎÎñ¡£³ýÁËglibcÊÇ×Ô°ü
º¬(×Ô¼ºÒÀÀµÓÚ×Ô¼º)µÄÍ⣬ÆäËûÁ½¸ö¶¼ÒªÒÀÀµÓÚglibc£¬Í¬Ê±glibc»áÓë¾ßÌåµÄÄÚ
ºË°æ±¾ÓÐÒ»¶¨µÄÒÀÀµÐÔ£¬µ«Õâ²¢²»ÊǾø¶ÔµÄ¡£×¢Ò⣬ËûÃǶ¼ÊÇÓÃgcc±àÒ룬²¢ÓÃ
binutilsµÄÁ¬½ÓÆ÷½øÐÐÁ¬½ÓµÄ¡£ÕâÀï¾Í±È½ÏÓÐȤÁË£¬ÊÇÏÈÓ즻¹ÊÇÏÈÓе°ÄØ£¿¼Æ
Ëã»úµÄ·¢Õ¹Ê·ÔÛÃǾͲ»±ØÌÖÂÛÁË£¬ÔÚ±¾Õ»áÏêϸ½éÉÜÈçºÎÀ´ÈÃËûÃǵĴúÂëÖ´ÐÐÆð
À´¡£µ«ËûÃDz»ÊÇÎÒÃÇÒªµÄÈ«²¿¡£

    Ê×ÏÈ£¬ÄãÓ¦¸Ã±£Ö¤ÄãÓпÉÓõÄgcc»·¾³£¬Äܹ»ÓÃËüÈÃÄãµÄÔ´´úÂë±ä³É¿ÉÖ´ÐгÌ
Ðò¡£ÍùÍùÕâÐèÒªÄãµÄ¼ÆËã»úÔËÐÐÁËij¸ö°æ±¾µÄLinux·¢²¼¡£µ±È»WindowsÒ²ÐУ¬²»
¹ý»á±È½ÏÂé·³£¬ÎÒ²»½¨ÒéÄãÕâô×ö£¬ÎÒÒ²²»»áÔÚÕâÀïÌÖÂÛ¸ÃÔõô×ö¡£ÄãÒ²²»ÒªÖ¸
ÍûÄãÏÖÔÚµÄÕâ¸ögcc»·¾³¿ÉÒÔÖ±½Ó´´½¨Magic LinuxµÄËùÓУ¬×îºóÄãµÃµ½µÄ»¹ÊÇÊô
ÓÚÄãÏÖÔÚʹÓõÄÕâ¸ö·¢²¼¡£ÒòΪÄãÏÖÔÚµÄgcc´´½¨²úÉúºóµÄ³ÌÐò£¬»¹ÊÇÒÀÀµÓÚÄãÏÖ
ÓÐLinux·¢²¼°æµÄglibcµÄ¡£Èç¹ûÄã˵ÄãÏÖÔھʹ´½¨Ò»¸öglibc²»¾ÍÐÐÁËÂ𣿲»ÐÅÄã
¿ÉÒÔÊÔÊÔ£¬µ±Äã°²×°Íêºó£¬¿´¿´ÄãµÄϵͳ»¹Äܹ¤×÷²»£¿ÑÔ¹éÕý´«£¬ÄãÏÖÔÚ¼±ÐèµÄ
ÊÇÄܹ»°ïÖúÄã²úÉúMagicLinuxµÄgcc¡£

1.×¼±¸»·¾³
    ×îºÃÄÜÔÚÄãµÄÓ²ÅÌÉÏ»®·Ö³öÒ»¸ö¶ÀÁ¢µÄ·ÖÇø£¬1G´óС¾Í¹»ÁË¡£²»¹ýÕâ¸öÄã¶¼ÏÓ
Âé·³µÄ»°£¬ÄãÓÐ1GÒÔÉϵÄ×ÔÓɿռäÒ²ÐС£ÏÖÔÚÎÒ¼ÙÉèÄã»®·ÖÁËÒ»¸ö¶ÀÁ¢µÄ·ÖÇø¡£
    À´°É£¬´´½¨/mnt/mlĿ¼£¬²¢½«ÄãµÄзÖÇø¹Ò½Óµ½ÕâÉÏÃæ(Èç¹û²»Á˽â¹Ò½ÓµÄ»°£¬
ÏÈÕÒÕÒ×ÊÁÏ,googleÒ»ÏÂmount)¡£

#mkdir /mnt/ml
    #mount /dev/hda6 /mnt/ml (ÎÒ¼ÙÉèÄãµÄзÖÇøÉ豸ÃûΪhda6)

cdµ½/mnt/mlĿ¼²¢´´½¨toolchainĿ¼¡£

    #cd /mnt/ml
    #mkdir toolchain

ÔÚÄãµÄ¸ùĿ¼´´½¨Ò»¸öÁ¬½Óµ½toolchainÉÏ(Èç¹û²»Á˽⣬googleÒ»ÏÂln)¡£

    #ln -sv /mnt/ml/toolchain /toolchain

´´½¨sourcesĿ¼¡£

    #mkdir sources

½«binutils¡¢gccºÍglibcµÈµÄÔ´´úÂë¸´ÖÆµ½sourcesĿ¼ÖС£Äã¿ÉÒÔÔÚÍøÂçÉÏÕÒµ½ËüÃÇ£¬
googleһϾÍÐÐÁË¡£binutilsµÄ×îб¾°æÊÇ2.18£¬Ô´´úÂë°ü¿ÉÄÜÊÇÕâÑùµÄÎļþÃû£º
binutils-2.18.tar.bz2£»gccµÄ×îб¾°æÊÇ4.2.2£¬Ô´´úÂë°ü¿ÉÄÜÊÇÕâÑùµÄÎļþÃû£º
gcc-4.2.2.tar.bz2£»glibcµÄ×îа汾ÊÇ2.7£¬Ô´´úÂë°ü¿ÉÄÜÊÇÕâÑùµÄÎļþÃû£º
glibc-2.7.tar.bz2¡£
ÐÞ¸ÄPATH»·¾³±äÁ¿¡£

    #export PATH=/toolchain/bin:$PATH

PATH»·¾³±äÁ¿Ö¸¶¨ÁËshellÃüÁîµÄĬÈÏËÑË÷·¾¶¡£ÎÒÃÇÐÞ¸ÄPATH»·¾³±äÁ¿Ê¹µÃÔÚÄãµÄgcc
¿ÉÓÃʱ£¬Ä¬ÈÏÖ´ÐеÄÊÇËü£¬¶ø²»ÊÇϵͳ×Ô´øµÄ¡£
    »·¾³ÒѾ­×¼±¸ºÃÁË£¬ÎÒÃÇ¿ªÊ¼°É¡£

2.´´½¨ÐµÄgcc»·¾³
    ΪÁË´´½¨ÍêÈ«¶ÀÁ¢ÓÚÄãÏÖÓÐϵͳµÄgcc»·¾³£¬ÎÒÃÇÒª´´½¨Á½´ÎbinutilsºÍgcc¡£ËûÃÇ´´
½¨µÄ´ÎÐòÊǺÜÖØÒªµÄ¡£ÎÒÃÇÏÖÔÚ½øÐеÚÒ»´Î´´½¨¡£½øÈësourcesĿ¼¡£

    #cd sources

2.1´´½¨binutils
    Ê×ÏÈ´´½¨binutils£¬ÊÇÒòΪÔÚ´´½¨gccºÍglibcʱ£¬ËüÃÇ»á¼ì²âÁ¬½ÓÆ÷ºÍ»ã±àÆ÷£¬ÒÔ±ã¾ö¶¨
ËüÃÇÄܹ»¿ªÆôÄÇÐ©ÌØÐÔ¡£Õû¸ö¹ý³Ì´ó¸ÅÐèÒª5·ÖÖÓ£¨¸ù¾ÝÄã»úÆ÷µÄ´¦ÀíÄÜÁ¦»áÓкܴóµÄ²»
ͬ£©£¬Õ¼ÓÃ200MB×óÓҵĴÅÅ̿ռ䡣
    ½âѹËõÔ´´úÂë°ü£¬²¢½øÈë½âѹºóµÄĿ¼£º

    #tar -jvxf binutils-2.18.tar.gz
    #cd binutils-2.18


ÓÉÓÚbinutilsÔÚijЩʱºò»áÓÐÒ»µãСÎÊÌ⣬ҪÐÞ¸´Ëü£¬ÐèÒªÏÂÔÚÒ»¸ö²¹¶¡£¬¶ÔÓ¦2.18°æ±¾µÄ
²¹¶¡ÊÇ£ºbinutils-2.18-configure-1.patch¡£

    #patch ¨CNp1 -i ../binutils-2.18-configure-1.patch

binutilsµÄÎĵµËµÓ¦¸ÃÔÚÒ»¸ö¶ÀÁ¢µÄĿ¼Öд´½¨binutils¡£ÄǾʹ´½¨Ò»¸öbuildĿ¼¡£

    #mkdir build
    #cd build


ÏÖÔÚΪ´´½¨binutils×ö×¼±¸¹¤×÷£º

    #CC=¡±gcc -B/usr/bin/¡±../configure \
    --prefix=/toolchain --disable-nls --disable-werror

¸÷Ñ¡ÏîµÄº¬ÒåÊÇ£º
    CC=¡±gcc -B/usr/bin/¡±
¸æËßgccʹÓÃÄ㵱ǰ²Ù×÷ϵͳ/usr/binĿ¼ÏµÄÁ¬½ÓÆ÷¡£Õâ¸ö¶ÔÓÚijЩÄãʹÓõÄLinux
    ·¢²¼ÊǺÜÖØÒªµÄ£¬ÒòΪд´½¨µÄÁ¬½ÓÆ÷ld¿ÉÄÜÓëËüËùÌṩµÄgcc²»¼æÈÝ¡£
    --prefix=/toolchain
    Õâ¸ö²ÎÊý¸æËßconfigure½Å±¾£¬°ÑbinutilsÈí¼þ°üÖеijÌÐò°²×°µ½/toolchinaĿ¼ÖУ¬Ò²¾ÍÊÇ
    /mnt/ml/toolchain¡£
    --disable-nls
    Õâ¸ö²ÎÊý½ûÖ¹Á˹ú¼Ê»¯£¨Í¨³£¼ò³Æi18n£©¡£´Ëʱ¸ù±¾²»ÐèÒª¹ú¼Ê»¯Ö§³Ö¡£
    --disable-werror
    Õâ¸ö²ÎÊý¿ÉÒÔ·ÀÖ¹ÓÉÓÚÄãµÄϵͳÌṩµÄgccÔÚ²úÉú¾¯¸æÊ¼þʱֹͣ´´½¨¹ý³Ì¡£
×¼±¸ºÃÁË£¬ÎÒÃÇ¿ÉÒÔ´´½¨ÁË£º

    #make

´´½¨Íê³Éºó£¬°²×°£º

    #make install

±ð׿±£¬»¹Ã»ÍêÊ¡£»¹µÃµ÷Õûһϣº

    #make ¨CC ld clean
    #make ¨CC ld LIB_PATH=/toolchain/lib


make²ÎÊýµÄº¬ÒåÊÇ£º
    -C ld clean
    ¸æËßmake£¬É¾³ýËùÓÐ×ÓĿ¼ldÖбàÒëÉú³ÉµÄÎļþ¡£
    -C ld LIB_PATH=/toolchain/lib
    Õâ¸öÑ¡ÏîÖØÐ±àÒëld×ÓĿ¼ÖеÄËùÓÐÎļþ¡£LIB_PATHÊÇMakefileµÄÒ»¸ö±äÁ¿£¬
    ÔÚÃüÁîÐÐÀïÖÆ¶¨Ëû£¬¿ÉÒÔ¸²¸ÇĬÈÏÖµ£¬²¢ÈÃËüÖ¸Ïò/toolchain/libĿ¼¡£Õâ¸ö±äÁ¿
    µÄÖµÖ¸¶¨ÁËÁ¬½ÓÆ÷µÄȱʡ¿âËÑË÷·¾¶¡£
ÊÖ¹¤½«ÐµijÌÐò¸´ÖƵ½/toolchain/binĿ¼£º

    #cp ¨Cv ld/ld-new /toolchain/bin

ºÃÁË£¬binutils´´½¨Íê³ÉÁË£¬ÄãÏÖÔÚ¿ÉÒÔɾ³ýbuildĿ¼ÁË¡£µ«ÊDz»ÒªÉ¾³ýbinutils-2.18Ä¿
¼£¬ÒòΪ»¹Òª±àÒëÒ»´ÎÄØ¡£Í˻ص½sourcesĿ¼£¬×¼±¸gccµÄ´´½¨¹¤×÷¡£

    #cd ../
    #rm ¨Crf build
    #cd ../


2.2 ´´½¨gcc
    Á¬½ÓÆ÷×¼±¸ºÃÁË£¬µ«ÎÒÃÇÕâ´ÎÏȲ»Ê¹ÓÃËü£¬Ã»ÓÐÕâ¸ö±ØÒª£¬ÒòΪÎÒÃÇ»¹ÐèÒªÔÙ´Î
´´½¨gccµÄ£¬ÄÇʱÔÙÓÃÒ²²»³Ù¡£Õâ¸ö¹ý³Ì´ó¸Å»á»¨·ÑÄã50·ÖÖÓµÄʱ¼äºÍ650MBµÄ´ÅÅÌ¿Õ
¼ä¡£
    ½âѹËõgccµÄÔ´´úÂë°ü²¢½øÈëÔ´´úÂëĿ¼¡£

    #tar ¨Cjvxf gcc-4.2.2.tar.bz2
    #cd gcc-4.2.2


gccÓëbinutilsÒ»Ñù£¬½¨ÒéÄãÔÚÒ»¸ö¶ÀÁ¢µÄĿ¼Öд´½¨Ëü¡£´´½¨buildĿ¼¡£

    #mkdir build
    #cd build


Ϊ´´½¨gcc×ö×¼±¸¡£

    #../configure ¨Cprefix=/toolchain ¨Cwith-local-prefix=/toolchain \
    --disable-nls ¨Cenable-shared ¨Cenable-languages=c


¸÷Ñ¡ÏîµÄº¬ÒåÊÇ£º
    CC=¡±gcc -B/usr/bin/¡±
    ¸æËßgccʹÓÃÄ㵱ǰ²Ù×÷ϵͳ/usr/binĿ¼ÏµÄÁ¬½ÓÆ÷¡£Ò²¾ÍÊDz»Ê¹ÓÃÄã¸Õ´´½¨Íê
    µÄÄǸöÁ¬½ÓÆ÷ld¡£ÕâÒ²ÊÇΪÁ˱ÜÃâһЩÂé·³£¬¿ÉÒԲο¼´´½¨binutilsʱ¶Ô¸ÃÑ¡ÏîµÄ
    ˵Ã÷¡£
    --with-local-prefix=/toolchain
    ĬÈÏÇé¿öÏ£¬gcc»áËÑË÷Á½¸öincludeĿ¼£¬Ò»¸öÊÇÆä°²×°Ä¿Â¼ÏµÄinclude£¬ÕâÀïÊÇ
    /toolchian/include£¬ÁíÍâÒ»¸öÊÇ/usr/local/include¡£Õâ¸öÑ¡Ïî¾ÍÊǽ«/usr/local/includeÕâ¸öĬ
    ÈÏËÑË÷Ŀ¼ɾ³ý£¬¶ø»¹ÊÇÖ¸Ïò/toolchain/include¡£
    --enable-shared
    Õâ¸öÑ¡ÏîÊÇΪÁË´´½¨³ölibgcc_s.so.1ºÍlibgcc_eh.aÎļþ£¬ÒòΪÏÂÒ»¸öÒª´´½¨µÄglibcÐèÒª
    libgcc_eh.a£¬ÒªÊÇûÓÐËü¾Í²»»á²úÉúÕýÈ·µÄ½á¹û¡£
    --enable-languages=c
    ÒòΪgccÊÇÒ»¸ö±àÒëÆ÷¼¯ºÏ£¬Õâ¸öÑ¡ÏîÖ¸¶¨Òª´´½¨ºÎÖÖÓïÑԵıàÒëÆ÷¡£´ËʱֻÐèÒªC£¬
    ÄǾÍûʲô¿É˵µÄÁË¡£
×¼±¸ºÃÁË£¬ÎÒÃÇ¿ÉÒÔ¿ªÊ¼´´½¨ÁË£º

    #make

´´½¨Íê³É£¬°²×°£º

    #make install

×îºóÄ㻹Ӧ¸Ã´´½¨Ò»¸ö·ûºÅÁ¬½Óccµ½Õâ¸öеÄgcc£¬ÒòΪºÃ¶àʱºò»áÓÃcc¶ø²»ÊÇgcc£¬ÕâÊÇΪ
ÁËÓëUnixƽ̨±£³ÖÒ»Ö£¬±ãÓÚ³ÌÐòµÄÒÆÖ²¡£

    #ln ¨Cvs gcc /toolchain/bin/cc

ºÃÁË£¬gcc´´½¨Íê³ÉÁË£¬½ÓÏÂÀ´µÄ´´½¨¹ý³Ì»á×Ô¶¯Ê¹ÓÃÕâ¸ögccµÄ£¬ÒòΪÄãÐÞ¸ÄÁËPATH»·¾³±ä
Á¿¡£×öЩÊ×β¹¤×÷£¬Òª²»È»ÄãµÄ´ÅÅÌ¿ÉÄܳԽôÁË¡£

    #cd ../
    #rm ¨Crf build
    #cd ../


2.3´´½¨glibc
    Ç°ÃæÎÒ˵¹ý£¬glibcÊÇ×Ô°üº¬µÄ£¬²»»áÒÀÀµÓÚÄǸöÈí¼þ°ü¡£µ«ÊÇÎÒҲ˵¹ý£¬ËüÊÇÓû§³ÌÐòÓë
Äں˽»Á÷µÄ±ê×¼½è¿Ú£¬Òò´Ë¶ÔÄں˻¹ÊÇÓÐÒ»¶¨ÒÀÀµµÄ¡£µ«ÊÇÕâ²¢²»Ïàì¶Ü£¬ÒòΪֻҪÊÇÒ»¸öϵ
ÁеÄÄںˣ¬»ù±¾ÉÏÊÇû¶àÉÙ¹ØÏµµÄ£¬±ÈÈçÏÖ½ñµÄ2.6ϵÁУ¬ËüÃÇ»áÓÐÌṩͳһµÄϵͳµ÷Óá£
    glibcÐèÒªÁ˽âÄں˵Äϵͳµ÷ÓúÍÕâЩµ÷ÓÃÏà¹ØµÄһЩÊý¾Ý½á¹¹¡£LinuxÄÚºË×öµÃºÜºÃ£¬²»Ðè
ÒªÓÐÄں˵Ķþ½øÖÆÎļþ£¬Ò»Çж¼°üº¬ÔÚÁËÄں˵Ĺ«ÓÃÍ·ÎļþÖÐÁË¡£ÕâÀï˵ЩÌâÍâ»°£¬Èç¹ûÄã¹»
Å£µÄ»°£¬ÆäʵÍêÈ«¿ÉÒÔ²»ÓÃglibc£¬Ö»ÀûÓÃÕâЩͷÎļþ¾Í¿ÉÒÔд³öºÏÊʵÄÓû§³ÌÐòµÄ£¬ÉõÖÁ±ÈÀû
ÓÃglibcµÄ¸üΪÓÅÐã¡£²»¹ýÈç¹ûÄãµÄÈ·ÄÇôţ£¬ÕâÆªÎÄÕÂÒ²¾Í²»ÊʺÏÄãÁË¡£
    ²»¶à˵ÁË£¬ÏÂÔØÒ»¸öÄÚºËÔ´´úÂëµ½ÄãµÄsourceĿ¼°É¡£×îеÄÊÇ2.6.23.12¡£
½âѹËõÄÚºËÔ´´úÂë°ü²¢½øÈëÔ´´úÂëĿ¼£º

    #tar ¨Cjvxf linux-2.6.23.12.tar.bz2
    #cd linux-2.6.23.12


°²×°Ïà¹ØµÄÍ·Îļþ£º

    #make mrproper
    #make headers_check
    #make INSTALL_HDR_PATH=dest header_install
    #cp ¨Crv dest/include/* /toolchain/include
    #cd ../


¹ØÓÚÄں˲Ù×÷ÓÐʲô²»Á˽âµÄ£¬¿ÉÒÔʹÓÃmake helpÃüÁî»ñµÃ°ïÖú¡£
½âѹËõglibcµÄÔ´´úÂë°ü²¢½øÈëÔ´´úÂëĿ¼£º

    #tar ¨Cjvxf glibc-2.7.tar.bz2
    #cd glibc-2.7


ÓëgccÒ»Ñù£¬»¹ÐèÒªµ¥¶ÀµÄĿ¼À´´´½¨£¬½¨Á¢buildĿ¼£º

    #mkdir build
    #cd build


ÓÉÓÚglibc²»ÔÙÖ§³Öi386ÌåϵÁË£¬Òò´ËËüµÄ¿ª·¢ÕßÃǽ¨ÒéÔÚ´´½¨glibcÊÇ£¬×îºÃʹÓÃ-march=i486±àÒëÑ¡
Ïî¡£µÄÈ·Èç´Ë£¬Èç¹ûÄã²»Ö¸¶¨Õâ¸öÑ¡Ï»á´´½¨Ê§°Ü¡£µ«ÊDZϾ¹ÏÖÔÚi486ÓõÄÒѾ­ºÜÉÙÁË£¬ÎÒÃÇ
Ò²¿ÉÒÔ²»¿¼ÂǼæ¹Ë£¬ÎªÁ˽øÒ»²½Ìá¸ßÐÔÄÜ£¬ÎÒ½¨ÒéʹÓÃ-march=i686±àÒëÑ¡Ïî¡£Äã¿ÉÒÔͨ¹ýÏÂÃæµÄ
ÃüÁîÍê³ÉÕâЩ£º

    #echo ¡°CFLAGS += -march=i686¡± > configparms

½Ó×Å£¬Îª´´½¨glibc×ö×¼±¸¹¤×÷£º

    #configure ¨Cprefix=/toolchain ¨Cdisable-profile ¨Cenable-add-ons \
    --enable-kernel=2.6.0 ¨Cwith-binutils=/toolchain/bin ¨Cwithout-gd \
    --with=headers=/toolchain/include ¨Cwithout-selinux


¸÷Ñ¡ÏîµÄº¬ÒåÈçÏ£º
    --disable-profile
    ºöÂÔµôprofilingÐÅÏ¢Ïà¹ØµÄ¿âÎļþ´´½¨£¬Õâ¸öʱºòÒ»°ã²»ÐèÒª¡£
    --enable-add-ons
    Õâ¸öָʾglibcʹÓø½¼ÓµÄNPTL£¨±¾µØPOSIXÏ߳̿⣩°ü×÷ΪÏ߳̿⡣
    --enable-kernel=2.6.0
    ¸æËßglibcÒªÖ§³Ö2.6.xÄںˡ£
    --with-binutils=/toolchain/bin
    Õâ¸ö²ÎÊý²¢²»ÊDZØÒªµÄ£¬Ö»ÊÇΪÁË·ÀÖ¹ÔÚ´´½¨glibcʱÓôíÁËbinutils³ÌÐò¡£ÕâÀﱣ֤ʹÓøղŴ´½¨
    ºÃµÄbinutils¡£
    --without-gd
    ±£Ö¤²»Éú³Émemusagestat³ÌÐò£¬Õâ¸ö³ÌÐò»á²úÉú¶ÔÄãÏÖÓÐϵͳµÄÒÀÀµ¡£
    --with-headers=/toolchain/include
    Õâ¸öÑ¡Ïî¾ÍÊǸæËßglibc£¬Ê¹Óøոհ²×°µÄÄں˶¼Îļþ´´½¨×Ô¼º¡£
    --without-selinux
    ²»ÌṩSELinuxÌØÐÔµÄÖ§³Ö£¬ÒòΪtoolchainÊDz»ÐèÒªµÄ¡£
ÔÚÕâ¸ö½×¶ÎÄãÒªÊÇ¿´µ½ÏÂÃæµÄ¾¯¸æÄã¾Í²»ÓùÜËü£¬¸úÄãûÓÐÈκιØÏµ£¬Ò²²»»áÓÐʲôӰÏìµÄ¡£

    configure: WARNING:
    *** These auxiliary programs are missing or
    *** incompatible versions: msgfmt
    *** some features will be disabled.
    *** Check the INSTALL file for required versions.


´´½¨Èí¼þ°ü£º

    #make

ÔÚ°²×°glibcµÄ¹ý³ÌÖУ¬Ëü»á¾¯¸æÈ±ÉÙ/toolchain/etc/ld.so.confÎļþ¡£ÆäʵûʲÊ£¬²»»áÓÐʲôӰÏ죬ֻҪÌá
¹©Ò»¸ö¿ÕÎļþËü¾Í±Õ×ìÁË£º

    #mkdir ¨Cv /toolchain/etc
    #touch /toolchain/etc/ld.so.conf


Ò»ÇÐ˳Àû¾Í¿ÉÒÔ°²×°ÁË£º

    #make install

¹§Ï²Ä㣬ÓÖ¸ÉÁËÒ»¼þÁ˲»ÆðµÄÊÂÇ飬²»¹ý±ðÍüÁËÊÕβ°¢£¬¿Õ¼äÓÐÏÞ¡£

    #cd ../
    #rm ¨Crf build
    #cd ../



(δÍ꣬´ýÐø......)

[ ±¾Ìû×îºóÓÉ Jagen ÓÚ 2008-1-23 23:24 ±à¼­ ]

¶¥²¿
npcomet
¹ÜÀíÔ±
Rank: 9Rank: 9Rank: 9


UID 201072
¾«»ª 11
»ý·Ö 11352
Ìû×Ó 10473
ÔĶÁȨÏÞ 200
×¢²á 2005-9-27
À´×Ô mbr-->kernel
״̬ ÀëÏß
·¢±íÓÚ 2008-1-20 01:45  ×ÊÁÏ  Ö÷Ò³ ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ  QQ
  ¶¦Á¦Ö§³Ö





ÖйúLinuxУ԰ÁªÃË Linux Campus Union of China£¨LCUC£©  ÔÚÖйú£¬Ñ§ÉúÓÀÔ¶ÊDz»¿ÉºöÊÓµÄÖØÒªÁ¦Á¿£¬Èùã´óѧÉúѧϰºÍʹÓÃLinuxÊÇÒ»¸öÈÃLinux¿ìËÙÆÕ¼°µÄ½Ý¾¶¡£ Ï£ÍûËùÓа®ºÃlinuxµÄÈËÀ´µ½ÎÒÃÇÖм䣬ÓÃÎÒÃǵÄÁ¦Á¿´´ÔìÒ»¸öÃÀºÃµÄδÀ´¡£ ˽È˿ռä
¶¥²¿
ghosTM55 (Thomas X. Iverson)
°æÖ÷
Rank: 7Rank: 7Rank: 7
Linux³¬¼¶²ËÄñ


UID 237608
¾«»ª 2
»ý·Ö 171
Ìû×Ó 201
ÔĶÁȨÏÞ 255
×¢²á 2007-2-19
À´×Ô ÉϺ£
״̬ ÔÚÏß
·¢±íÓÚ 2008-1-20 11:07  ×ÊÁÏ  Ö÷Ò³ ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ 
Õâ¸ö²»¾ÍÊÇLFSÁËô£¿ºÇºÇ

[ ±¾Ìû×îºóÓÉ ghosTM55 ÓÚ 2008-1-20 11:09 ±à¼­ ]





¶¥²¿
nihui
×¢²á»áÔ±
Rank: 2


UID 235250
¾«»ª 0
»ý·Ö 358
Ìû×Ó 467
ÔĶÁȨÏÞ 20
×¢²á 2007-1-8
À´×Ô Shanghai
״̬ ÔÚÏß
·¢±íÓÚ 2008-1-20 11:50  ×ÊÁÏ  Ö÷Ò³ ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ  Ìí¼Ó nihui ΪMSNºÃÓѠͨ¹ýMSNºÍ nihui ½»Ì¸ QQ ICQ ״̬ Yahoo!
3.0 ÀíÓ¦»ùÓÚ 2.1 ¿ª·¢µÄ°É~   






»¶Ó­À´ irc.freenode.net Ö® #magiclinux ÁÄÌìÊÒ~
¶¥²¿
Jagen
°æÖ÷
Rank: 7Rank: 7Rank: 7



UID 205889
¾«»ª 0
»ý·Ö 66
Ìû×Ó 43
ÔĶÁȨÏÞ 255
×¢²á 2005-11-21
״̬ ÀëÏß
·¢±íÓÚ 2008-1-20 12:29  ×ÊÁÏ  ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ  Ìí¼Ó Jagen ΪMSNºÃÓѠͨ¹ýMSNºÍ Jagen ½»Ì¸ QQ


QUOTE:
Ô­ÌûÓÉ nihui ÓÚ 2008-1-20 11:50 ·¢±í
3.0 ÀíÓ¦»ùÓÚ 2.1 ¿ª·¢µÄ°É~   

ÄǾͼÌÐøÉý¼¶ÁË£¬ÎªÉ¶»¹½Ð3.0?

¶¥²¿
lanzinc
ÒøÅÆ»áÔ±
Rank: 6Rank: 6


UID 177343
¾«»ª 10
»ý·Ö 2416
Ìû×Ó 1076
ÔĶÁȨÏÞ 70
×¢²á 2005-1-10
״̬ ÀëÏß
·¢±íÓÚ 2008-1-20 15:02  ×ÊÁÏ  ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ  QQ


QUOTE:
Ô­ÌûÓÉ ghosTM55 ÓÚ 2008-1-20 11:07 ·¢±í
Õâ¸ö²»¾ÍÊÇLFSÁËô£¿ºÇºÇ

ºÍLFSµÄ²»Í¬¾ÍÔÚÓÚ
LFS:ÔÚÄ¿±êϵͳ±àÒë²¢Ö±½Ó°²×°

MGC:ÔÚ±ê׼ϵͳÉϱàÒë´ò°ü£¬ÔÚÄ¿±êϵͳÓÃrpm°²×°£¬»òÓÃMIÀûÓð²×°°ü¹¹½¨ÐÂϵͳ¡£

¸Ã¹ý³ÌMGCÒª±ÈLFS¸ü¸´ÔÓһЩ£¬Éæ¼°´ò glibc,gccÕâЩ°ü£¬·Ö·¢µÄ¶þ½øÖưüºÍ±ê׼ϵͳÉϰ²×°ºÃµÄÎļþÈçºÎÒ»ÖµÄÎÊÌâ¡£





Èí¼þºÍÈκÎÀíÂÛ¶¼ÊÇÓÐÒ»¶¨ÊÊÓ÷¶Î§µÄ£¬Ö»Äܽâ¾ö²¿·ÖÎÊÌâ¡£

  • http://lunanflying.spaces.live.com
  • note:http://zinczombie.spaces.msn.com
¶¥²¿
lanzinc
ÒøÅÆ»áÔ±
Rank: 6Rank: 6


UID 177343
¾«»ª 10
»ý·Ö 2416
Ìû×Ó 1076
ÔĶÁȨÏÞ 70
×¢²á 2005-1-10
״̬ ÀëÏß
·¢±íÓÚ 2008-1-20 15:19  ×ÊÁÏ  ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ  QQ
ÕâÀïÓÃÈý¸ölib
Ò»¸ö Host µÄ /lib,¹¤¾ßÁ´µÄ/tools/libºÍÄ¿±êϵͳµÄ/lib
ÓôíÁ˾ÍÂé·³ÁË
ºÇºÇºÇ£¬ld»áÕÒÕýÈ·µÄÓá£





Èí¼þºÍÈκÎÀíÂÛ¶¼ÊÇÓÐÒ»¶¨ÊÊÓ÷¶Î§µÄ£¬Ö»Äܽâ¾ö²¿·ÖÎÊÌâ¡£

  • http://lunanflying.spaces.live.com
  • note:http://zinczombie.spaces.msn.com
¶¥²¿
ghosTM55 (Thomas X. Iverson)
°æÖ÷
Rank: 7Rank: 7Rank: 7
Linux³¬¼¶²ËÄñ


UID 237608
¾«»ª 2
»ý·Ö 171
Ìû×Ó 201
ÔĶÁȨÏÞ 255
×¢²á 2007-2-19
À´×Ô ÉϺ£
״̬ ÔÚÏß
·¢±íÓÚ 2008-1-20 21:57  ×ÊÁÏ  Ö÷Ò³ ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ 


QUOTE:
Ô­ÌûÓÉ Jagen ÓÚ 2008-1-20 12:29 ·¢±í



ÄǾͼÌÐøÉý¼¶ÁË£¬ÎªÉ¶»¹½Ð3.0?

¶Ô£¬¾ÍÊÇÒª´øÀ´ÏñKDE4ÄÇÑùµÄÕ𺳣¬´ó¼ÒÒ»ÆðŬÁ¦





¶¥²¿
hover_sky
ÐÂÊÖÉÏ·
Rank: 1



UID 243370
¾«»ª 0
»ý·Ö 10
Ìû×Ó 20
ÔĶÁȨÏÞ 10
×¢²á 2007-10-2
״̬ ÀëÏß
·¢±íÓÚ 2008-1-22 12:44  ×ÊÁÏ  ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ 
·Ç³£ºÃ£¡
¼á¾öÖ§³Ö£¡

¶¥²¿
SCerZZ
×¢²á»áÔ±
Rank: 2



UID 188047
¾«»ª 0
»ý·Ö 323
Ìû×Ó 177
ÔĶÁȨÏÞ 20
×¢²á 2005-4-4
״̬ ÀëÏß
·¢±íÓÚ 2008-1-23 15:15  ×ÊÁÏ  ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ 
¶¥£¬»¹ºÃ¸ãÁËÁ½´Îlfs£¬¿´µÃ¶®¡£ÕâÑùµÄ»°Õë¶Ô3.0£¬Ó¦¸ÃÒªÌṩ´ó¼ÒͳһʹÓõÄglibcºÍÆäËü¹¤¾ßÁ´µÄ¿â°æ±¾±È½ÏºÏÊʰɡ£





ŬÁ¦C Ϊ¶ùʱµÄÓÎÏ·ÃÎ~ ϲ»¶LinuxÀï±ßÈËÃÇÎÞ˽·îÏ×µÄÄÇÖÖ¾«Éñ~
¶¥²¿
csfrank
ÐÂÊÖÉÏ·
Rank: 1



UID 200783
¾«»ª 2
»ý·Ö 78
Ìû×Ó 23
ÔĶÁȨÏÞ 10
×¢²á 2005-9-24
״̬ ÀëÏß
·¢±íÓÚ 2008-1-25 17:21  ×ÊÁÏ  ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ 
ÌṩÁ½·Ý×ÊÁϹ©´ó¼Ò²Î¿¼

ºÜ¼¤¶¯ÈËÐĵÄÏûÏ¢£¬ËäÈ»Î񼆾ûʱ¼ä²Î¼Ó¿ª·¢£¬µ«ÊÇ¿´×ÅÕâ¸ö¹¤¾ßÁ´µÄÖÆ×÷£¬ÓÐЩ¹ýÓÚ LFS »¯ÁË¡£
СµÜ²»²Å£¬ÌṩÁ½·ÝÖÆ×÷¹¤¾ßÁ´Ê±¿ÉÄÜÐèÒªÓõ½µÄ²Î¿¼×ÊÁÏ£º
Glibc GCC Binutils °²×°Ö¸ÄÏ
GCC±àÒëÓÅ»¯Ö¸ÄÏ
½¨Òé ML ¾ÍÒªÓÐ ML µÄÌØµã£¬¾¡Á¿´òÔì³ö¸ßЧÄܵŤ¾ßÁ´¡£
ÏÂÃæÊÇÎÒÔÚ×ö LFS ʱ±àÒ빤¾ßÁ´µÄÏà¹ØÃüÁ½ö¹©²Î¿¼[ÎÒûÓа²×°C++±àÒëÆ÷]£º

export LFS=$LFS
export SRC=$LFS/data
export PATH=/www/bin:/bin:/usr/bin
export LC_ALL=C TZ=UTC
export CFLAGS='-DNDEBUG -O3 -fomit-frame-pointer -pipe -fno-bounds-check -freg-struct-return -march=athlon-xp -maccumulate-outgoing-args -fmerge-all-constants -finline-limit=300'
export LDFLAGS='-s -Wl,-O1,-s'
alias make='make -j1' mkdir='mkdir -p' patch='patch -p1 -i' mv='mv -f' cp='cp -pf' rm='rm -fr'

( test ! -f $SRC/tmp.log ) && [ "`pwd`" = "$SRC" ] &&
tar -xf binutils-2.18.tar.bz2 && mkdir binutils-build && cd binutils-build &&
echo 'MAKEINFO = :' >> ../binutils-2.18/Makefile.in &&
CFLAGS="-O2 -fomit-frame-pointer -pipe -march=athlon-xp" LDFLAGS="-s"  \
../binutils-2.18/configure --prefix=/www --disable-nls --disable-rpath --disable-multilib --disable-shared --enable-static --disable-64-bit-bfd --disable-cgen-maint --disable-libada --disable-libgcc-math --disable-libgcj --disable-libssp --disable-objc-gc --disable-werror --with-gnu-ld --without-gmp --without-mpfr --without-included-gettext --without-libiconv-prefix --without-libintl-prefix --with-pic &&
make all install tooldir=/www/ && cp ../binutils-2.18/include/libiberty.h /www/include &&
make clean-ld all-ld LIB_PATH=/www/lib CC="gcc -B/www/bin/" tooldir=/www/ && cp ld/ld-new /www/bin/ &&
cd $SRC && rm */ &&
echo '1-binutils-pass1' >> $SRC/tmp.log && sync &&

tar -xf gcc-core-4.2.2.tar.bz2 && mkdir gcc-build && cd gcc-build &&
sed -r -i 's|^LDFLAGS(_FOR_TARGET)? =|& @LDFLAGS@|' ../gcc-4.2.2/Makefile.in &&
sed -i 's/install_to_$(INSTALL_DEST) //' ../gcc-4.2.2/libiberty/Makefile.in &&
sed -i -e's@\./fixinc\.sh@-c true@' -e'/^LIBGCC2_DEBUG_CFLAGS/d' ../gcc-4.2.2/gcc/Makefile.in &&
sed -i '/MULTILIB_OSDIRNAMES/d' ../gcc-4.2.2/gcc/config/i386/t-linux64 &&
CC="gcc -B/www/bin/" CFLAGS="-O2 -fomit-frame-pointer -pipe -march=athlon-xp" LDFLAGS="-s"  \
../gcc-4.2.2/configure --prefix=/www --with-local-prefix=/www --enable-languages=c --enable-bootstrap --enable-checking=yes --enable-largefile --disable-nls --disable-rpath --disable-multilib --disable-cpp --enable-shared=libgcc --enable-static=libgcc --disable-libada --disable-libgcj --disable-libgomp --disable-libmudflap --disable-libssp --disable-decimal-float --disable-install-libiberty --enable-linux-futex --enable-threads=posix --enable-tls --disable-symvers --with-arch=athlon-xp --with-long-double-128 --with-gnu-as --with-gnu-ld --with-as=/www/bin/as --with-ld=/www/bin/ld --without-included-gettext --without-libiconv-prefix --without-libintl-prefix --without-gmp --without-mpfr --without-system-libunwind --without-system-zlib --with-pic --without-x &&
make bootstrap4 install LIBCFLAGS="-O2 -fomit-frame-pointer -pipe -march=athlon-xp" BOOT_CFLAGS="-O2 -fomit-frame-pointer -pipe -march=athlon-xp" BOOT_LDFLAGS="-s" &&
ln -sf gcc /www/bin/cc &&
INC=`gcc -print-file-name=include` &&
TOL=`gcc -print-file-name=install-tools` &&
rm  $INC/* &&
cp  $TOL/include/*     $INC &&
cp  $TOL/gsyslimits.h  $INC/syslimits.h &&
unset INC TOL &&
cd $SRC && rm */ &&
echo '2-gcc-pass1' >> $SRC/tmp.log && sync &&

tar -xf linux-2.6.23.13.tar.bz2 && cd linux-2.6.23.13 &&
sed -i '/scsi/d' include/Kbuild &&
make distclean && make headers_check ARCH=i386 &&
make headers_install ARCH=i386 INSTALL_HDR_PATH=temp &&
cp -r temp/include/* /www/include/ &&
cd $SRC && rm */ &&
echo '3-kernel-headers' >> $SRC/tmp.log && sync &&

tar -xf glibc-2.6.1.tar.bz2 && mkdir glibc-build && cd glibc-build &&
find .. -name configure | xargs touch &&
LDFLAGS="`echo $LDFLAGS | sed 's/,--hash-style=gnu//'`"  \
../glibc-2.6.1/configure --prefix=/www --enable-add-ons=nptl --enable-shared --disable-static --disable-bind-now --disable-bounded --enable-force-install --enable-hidden-plt --enable-kernel=2.6.22 --disable-oldest-abi --enable-omitfp --disable-profile --enable-sanity-checks --enable-stackguard-randomization --disable-static-nss --with-headers=/www/include --with-binutils=/www/bin --without-cvs --with-elf --without-gd --without-gmp --without-selinux --with-fp --with-tls &&
make && ( make -k check 2> $SRC/tmp_glibc.log ; make install ) &&
rm /www/lib/*_g.* &&
cp --remove-destination /www/share/zoneinfo/UTC /www/etc/localtime &&
cd $SRC && rm */ &&
echo '4-glibc' >> $SRC/tmp.log && sync &&

mv /www/bin/{ld-new,ld} &&
gcc -dumpspecs | sed 's@/lib/ld-linux.so.2@/www/lib/ld-linux.so.2@g' > `dirname $(gcc -print-libgcc-file-name)`/specs &&
echo 'main(){}' > dummy.c && cc dummy.c && readelf -l a.out | fgrep '[Requesting program interpreter: /www/lib/ld-linux.so.2]' && rm dummy.c a.out &&
echo '5-Adjusting' >> $SRC/tmp.log && sync &&

tar -xf tcl8.4.16-src.tar.gz && cd tcl8.4.16/unix &&
./configure --prefix=/www --enable-threads --enable-shared --enable-load --enable-gcc --disable-symbols --disable-64bit --disable-64bit-vis --disable-langinfo --disable-corefoundation --disable-dtrace --disable-framework --disable-man-symlinks --disable-man-compression --disable-man-suffix &&
make && make install install-private-headers &&
ln -sf tclsh8.4 /www/bin/tclsh &&
cd $SRC && rm */ && sync &&
tar -xf expect-5.43.0.tar.bz2 && cd expect-5.43 &&
patch $SRC/expect-5.43.0-spawn-2.patch &&
sed -i 's/STTY_BIN=.*/STTY_BIN=stty/g' configure{.in,} &&
./configure --prefix=/www --enable-threads --enable-shared --enable-load --enable-gcc --with-tcl=/www/lib --with-tclinclude=/www/include --with-x=no --disable-symbols &&
make expect && make install SCRIPTS="" &&
cd $SRC && rm */ && sync &&
tar -xf dejagnu-1.4.4.tar.gz && cd dejagnu-1.4.4 &&
./configure --prefix=/www &&
make install &&
cd $SRC && rm */ &&
echo '6-tcl-expect-dejagnu' >> $SRC/tmp.log && sync &&

tar -xf gcc-core-4.2.2.tar.bz2 && tar -xf gcc-testsuite-4.2.2.tar.bz2 && cd gcc-4.2.2 &&
sed -r -i 's|^LDFLAGS(_FOR_TARGET)? =|& @LDFLAGS@|' Makefile.in &&
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in &&
sed -i -e's@\./fixinc\.sh@-c true@' -e'/^LIBGCC2_DEBUG_CFLAGS/d' gcc/Makefile.in &&
sed -i '/MULTILIB_OSDIRNAMES/d' gcc/config/i386/t-linux64 &&
echo '/* Remove /usr/include from end of include search path.  */
#undef STANDARD_INCLUDE_DIR
#define STANDARD_INCLUDE_DIR 0' | tee -a gcc/config/linux.h gcc/config/i386/linux{,64}.h &&
sed -i 's@/lib/ld.so@/www&@g' gcc/config/i386/gnu.h &&
sed -i 's@/lib/ld-linux.so.2@/www&@g' gcc/config/i386/linux{,64}.h &&
sed -i 's@/lib64/ld-linux-x86-64.so.2@/www&@g' gcc/config/i386/linux64.h &&
# sed -i '/LINK_SPEC/s/ "/&--hash-style=gnu /' gcc/config/i386/linux{,64}.h &&
mkdir ../gcc-build && cd ../gcc-build &&
../gcc-4.2.2/configure --prefix=/www --with-local-prefix=/www --enable-languages=c --enable-bootstrap --enable-checking=yes --enable-largefile --disable-nls --disable-rpath --disable-multilib --disable-cpp --enable-shared=libgcc --enable-static=libgcc --disable-libada --disable-libgcj --disable-libgomp --disable-libmudflap --disable-libssp --disable-decimal-float --disable-install-libiberty --enable-linux-futex --enable-threads=posix --enable-tls --disable-symvers --with-arch=athlon-xp --with-long-double-128 --with-gnu-as --with-gnu-ld --with-as=/www/bin/as --with-ld=/www/bin/ld --without-included-gettext --without-libiconv-prefix --without-libintl-prefix --without-gmp --without-mpfr --without-system-libunwind --without-system-zlib --with-pic --without-x &&
make profiledbootstrap LIBCFLAGS="$CFLAGS" BOOT_CFLAGS="$CFLAGS" BOOT_LDFLAGS="$LDFLAGS" &&
( make -k check | tee $SRC/tmp_gcc.log ; make install ) &&
INC=`gcc -print-file-name=include` &&
TOL=`gcc -print-file-name=install-tools` &&
rm  $INC/* &&
cp  $TOL/include/*     $INC &&
cp  $TOL/gsyslimits.h  $INC/syslimits.h &&
unset INC TOL &&
cd $SRC && rm */ && sync &&
echo 'main(){}' > dummy.c && cc dummy.c && readelf -l a.out | fgrep '[Requesting program interpreter: /www/lib/ld-linux.so.2]' && rm dummy.c a.out &&
echo '7-gcc-pass2' >> $SRC/tmp.log && sync &&

tar -xf binutils-2.18.tar.bz2 && mkdir binutils-build && cd binutils-build &&
echo 'MAKEINFO = :' >> ../binutils-2.18/Makefile.in &&
CFLAGS="$CFLAGS -fno-inline-functions" \
../binutils-2.18/configure --prefix=/www --with-lib-path=/www/lib --disable-nls --disable-rpath --disable-multilib --disable-shared --enable-static --disable-64-bit-bfd --disable-cgen-maint --disable-libada --disable-libgcc-math --disable-libgcj --disable-libssp --disable-objc-gc --disable-werror --with-gnu-ld --without-gmp --without-mpfr --without-included-gettext --without-libiconv-prefix --without-libintl-prefix --with-pic &&
make all check install tooldir=/www/ &&
make clean-ld all-ld check-ld LIB_PATH=/lib:/usr/lib tooldir=/www/ && cp ld/ld-new /www/bin/ &&
cp ../binutils-2.18/include/libiberty.h /www/include/ &&
cd $SRC && rm */ &&
echo '8-binutils-pass2' >> $SRC/tmp.log && sync &&


±¾Ìû×î½üÆÀ·Ö¼Ç¼
ghosTM55   2008-1-26 10:28  ÍþÍû  +10   ¾«Æ·ÎÄÕÂ
¶¥²¿
csfrank
ÐÂÊÖÉÏ·
Rank: 1



UID 200783
¾«»ª 2
»ý·Ö 78
Ìû×Ó 23
ÔĶÁȨÏÞ 10
×¢²á 2005-9-24
״̬ ÀëÏß
·¢±íÓÚ 2008-1-25 17:22  ×ÊÁÏ  ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ 
ÏÂÃæÊÇ chroot ºóµÄÃüÁî

------------------ÏÂÃæÊÇ chroot ºóµÄÃüÁî---------------------
( test ! -f $SRC/build.log ) && [ "`pwd`" = "$SRC" ] &&
R=/root/linux-headers-2.6.23.13/ &&
tar -xf linux-2.6.23.13.tar.bz2 && cd linux-2.6.23.13 &&
sed -i '/scsi/d' include/Kbuild &&
make distclean && make headers_check ARCH=i386 &&
make headers_install ARCH=i386 INSTALL_HDR_PATH=$R/usr &&
cp -r $R/usr/include /usr/ &&
cd $SRC && rm */ &&
echo '1-kernel-headers' >> $SRC/build.log && sync &&

R=/root/glibc-2.6.1/ && mkdir {,$R}/usr/lib/locale &&
tar -xf glibc-2.6.1.tar.bz2 && cd glibc-2.6.1 &&
sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.2 -o|' scripts/test-installation.pl &&
sed -r -i 's:/bin/(pwd|cat):\1:g' configure{.in,} io/ftwtest-sh stdio-common/{test-popen,xbug,tstscanf}.c &&
sed -i -e's|^rootsbindir =.*|rootsbindir=/usr/bin|' -e's|^sbindir = .*|sbindir=/usr/bin|' Makeconfig &&
sed -i 's|^sbindir=.*|sbindir=/usr/bin|' {,posix/glob/}configure &&
sed -i 's|libc_cv_rootsbindir=.*|libc_cv_rootsbindir=/usr/bin|' sysdeps/unix/sysv/linux/configure &&
find . -name configure | xargs touch &&
mkdir ../glibc-build && cd ../glibc-build &&
../glibc-2.6.1/configure --prefix=/usr --sbindir=/usr/bin --enable-add-ons=nptl --enable-shared --disable-static --disable-bind-now --disable-bounded --enable-force-install --enable-hidden-plt --enable-kernel=2.6.23 --disable-oldest-abi --enable-omitfp --disable-profile --enable-sanity-checks --enable-stackguard-randomization --disable-static-nss --with-headers=/usr/include --with-binutils=/www/bin --without-cvs --with-elf --without-gd --without-gmp --without-selinux --with-fp --with-tls &&
make && ( make -k check 2> $SRC/build_glibc.log ; make install ) &&
make install install_root=$R &&
localedef -i zh_CN -f UTF-8 zh_CN.UTF-8 && cp /usr/lib/locale/* $R/usr/lib/locale/ &&
rm {,$R}/etc/rpc {,$R}/{,usr}/lib/*_g.* {,$R}/usr/libexec/pt_chown {,$R}/usr/share/locale &&
echo 'passwd: files
group: files
shadow: files
hosts: files dns
networks: files
protocols: files
services: files
ethers: files
rpc: files' | tee {,$R}/etc/nsswitch.conf &&
cp --remove-destination /usr/share/zoneinfo/UTC   /etc/localtime &&
cp --remove-destination /usr/share/zoneinfo/UTC $R/etc/localtime &&
cp /etc/{passwd,group,hosts}  $R/etc/ &&
cd $SRC && rm */ &&
echo '2-glibc' >> $SRC/build.log && sync &&

mv /www/bin/{ld-new,ld} &&
gcc -dumpspecs | sed -e'/^\*link:$/{n;s@$@ -L/usr/lib@}' -e's@/www/lib/ld-linux.so.2@/lib/ld-linux.so.2@g' -e'/^\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' -e'/^\*cpp:$/{n;s@$@ -isystem /usr/include@}' > `dirname $(gcc -print-libgcc-file-name)`/specs &&
echo 'main(){}' > dummy.c && cc dummy.c -v -Wl,--verbose &> dummy.log &&
readelf -l a.out | fgrep '[Requesting program interpreter: /lib/ld-linux.so.2]' &&
fgrep 'attempt to open /usr/lib/crt1.o succeeded' dummy.log &&
fgrep 'attempt to open /usr/lib/crti.o succeeded' dummy.log &&
fgrep 'attempt to open /usr/lib/crtn.o succeeded' dummy.log &&
fgrep '#include <...> search starts here:
/usr/include
/www/include' dummy.log &&
# fgrep 'SEARCH_DIR("/www/i686-pc-linux-gnu/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");' dummy.log &&
fgrep 'attempt to open /lib/libc.so.6 succeeded' dummy.log &&
fgrep 'found ld-linux.so.2 at /lib/ld-linux.so.2' dummy.log &&
rm dummy.c a.out dummy.log &&
echo '3-adjusting' >> $SRC/build.log && sync &&

R=/root/binutils-2.18/ &&
tar -xf binutils-2.18.tar.bz2 && mkdir binutils-build && cd binutils-build &&
echo 'MAKEINFO = :' >> ../binutils-2.18/Makefile.in &&
CFLAGS="$CFLAGS -fno-inline-functions" \
../binutils-2.18/configure --prefix=/usr --sbindir=/usr/bin --with-lib-path=/lib:/usr/lib --disable-nls --disable-rpath --disable-multilib --enable-shared --disable-static --disable-64-bit-bfd --disable-cgen-maint --disable-libada --disable-libgcc-math --disable-libgcj --disable-libssp --disable-objc-gc --disable-werror --with-gnu-ld --without-gmp --without-mpfr --without-included-gettext --without-libiconv-prefix --without-libintl-prefix --with-pic &&
make all check install tooldir=/usr/  && cp ../binutils-2.18/include/libiberty.h   /usr/include/ &&
make install tooldir=/usr/ DESTDIR=$R && cp ../binutils-2.18/include/libiberty.h $R/usr/include/ &&
cd $SRC && rm */ &&
echo '5-binutils' >> $SRC/build.log && sync &&

R=/root/gcc-4.2.2/ &&
tar -xf gcc-core-4.2.2.tar.bz2 && tar -xf gcc-testsuite-4.2.2.tar.bz2 && cd gcc-4.2.2 &&
sed -r -i 's|^LDFLAGS(_FOR_TARGET)? =|& @LDFLAGS@|' Makefile.in &&
sed -i -e's@\./fixinc\.sh@-c true@' -e'/^LIBGCC2_DEBUG_CFLAGS/d' gcc/Makefile.in &&
sed -i '/MULTILIB_OSDIRNAMES/d' gcc/config/i386/t-linux64 &&
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in &&
sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in &&
# sed -i '/LINK_SPEC/s/ "/&--hash-style=gnu /' gcc/config/i386/linux{,64}.h &&
mkdir ../gcc-build && cd ../gcc-build &&
../gcc-4.2.2/configure --prefix=/usr --sbindir=/usr/bin --with-local-prefix=/usr/local --enable-languages=c --enable-bootstrap --enable-checking=yes --enable-largefile --disable-nls --disable-rpath --disable-multilib --disable-cpp --enable-shared=libgcc --disable-static --disable-libada --disable-libgcj --disable-libgomp --disable-libmudflap --disable-libssp --disable-decimal-float --disable-install-libiberty --enable-linux-futex --enable-threads=posix --enable-tls --disable-symvers --with-arch=athlon-xp --with-long-double-128 --with-gnu-as --with-gnu-ld --with-as=/usr/bin/as --with-ld=/usr/bin/ld --without-included-gettext --without-libiconv-prefix --without-libintl-prefix --without-gmp --without-mpfr --without-system-libunwind --without-system-zlib --with-pic --without-x &&
make profiledbootstrap LIBCFLAGS="$CFLAGS" BOOT_CFLAGS="$CFLAGS" BOOT_LDFLAGS="$LDFLAGS" &&
( make -k check | tee $SRC/build_gcc.log ; make install ) &&
make install DESTDIR=$R &&
ln -sf gcc   /usr/bin/cc &&
ln -sf gcc $R/usr/bin/cc &&
INC=`gcc -print-file-name=include` &&
TOL=`gcc -print-file-name=install-tools` &&
rm  {,$R}/$INC/* &&
cp  $TOL/include/*     $INC &&
cp  $TOL/include/*  $R/$INC &&
cp  $TOL/gsyslimits.h     $INC/syslimits.h &&
cp  $TOL/gsyslimits.h  $R/$INC/syslimits.h &&
unset INC TOL &&
cd $SRC && rm */ && sync &&
echo 'main(){}' > dummy.c && cc dummy.c -v -Wl,--verbose &> dummy.log &&
readelf -l a.out | fgrep '[Requesting program interpreter: /lib/ld-linux.so.2]' &&
fgrep 'attempt to open /usr/lib/gcc/i686-pc-linux-gnu/4.2.2/../../../crt1.o succeeded' dummy.log &&
fgrep 'attempt to open /usr/lib/gcc/i686-pc-linux-gnu/4.2.2/../../../crti.o succeeded' dummy.log &&
fgrep 'attempt to open /usr/lib/gcc/i686-pc-linux-gnu/4.2.2/../../../crtn.o succeeded' dummy.log &&
fgrep '#include <...> search starts here:
/usr/lib/gcc/i686-pc-linux-gnu/4.2.2/include
/usr/include
End of search list.' dummy.log &&
fgrep 'SEARCH_DIR("/usr/i686-pc-linux-gnu/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");' dummy.log &&
fgrep 'attempt to open /lib/libc.so.6 succeeded' dummy.log &&
fgrep 'found ld-linux.so.2 at /lib/ld-linux.so.2' dummy.log &&
rm dummy.c a.out dummy.log &&
echo '6-gcc' >> $SRC/build.log && sync &&

¶¥²¿
ghosTM55 (Thomas X. Iverson)
°æÖ÷
Rank: 7Rank: 7Rank: 7
Linux³¬¼¶²ËÄñ


UID 237608
¾«»ª 2
»ý·Ö 171
Ìû×Ó 201
ÔĶÁȨÏÞ 255
×¢²á 2007-2-19
À´×Ô ÉϺ£
״̬ ÔÚÏß
·¢±íÓÚ 2008-1-26 10:28  ×ÊÁÏ  Ö÷Ò³ ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ 
ÕâÊÇcsfrank´ó¸çдµÄLFS½Å±¾°É£¿

ѧϰÁË





¶¥²¿
haulm
°æÖ÷
Rank: 7Rank: 7Rank: 7


UID 201438
¾«»ª 8
»ý·Ö 5274
Ìû×Ó 2499
ÔĶÁȨÏÞ 255
×¢²á 2005-10-2
״̬ ÀëÏß
·¢±íÓÚ 2008-1-26 17:15  ×ÊÁÏ  ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ 
Óе㸴ÔÓ£¬²»¹ýÄÚÈݵÄÈ·¾ÍÊÇLFS¹¤¾ßÁ´Ô­Îĵķ­Ò룬ÓÐЩ´íÎóµÄµØ·½ÊDZêµã·ûºÅ²¢ÓÐÉÙÁ¿µÄ©ÌîÖ¸Áî¡£¾ßÌåÄÚÈÝ¿ÉÒԲο¼

http://www.linuxfromscratch.org/ ... er05/chapter05.html

http://www.linuxfromscratch.org/lfs/view/development/part3.html

http://www.linuxfromscratch.org/lfs/view/development/index.html

[ ±¾Ìû×îºóÓÉ haulm ÓÚ 2008-1-26 17:25 ±à¼­ ]





×ԹŶàÇé¿ÕÓàºÞ£¬¼¸È˶ÀäìÈ÷¡£
ÎʾýÏà°éºÎËù˼£¬Î¨Ì¾ºìÒ¶·É¡£
ƾÀ¸´°ÍâÒ»ð©Ô£¬Àä·ç¸§Ã棬º®ÐÇÈç±ù¡£
»ØÏëǰʶÀÉ˸У¬ÄÑ·ÖÄÑÀ룬µ¹ÊÇɽÂͲݽ棬ÒÀ¾ÉÇà¡£
¶¥²¿
Jagen
°æÖ÷
Rank: 7Rank: 7Rank: 7



UID 205889
¾«»ª 0
»ý·Ö 66
Ìû×Ó 43
ÔĶÁȨÏÞ 255
×¢²á 2005-11-21
״̬ ÀëÏß
·¢±íÓÚ 2008-1-26 21:25  ×ÊÁÏ  ¶ÌÏûÏ¢  ¼ÓΪºÃÓÑ  Ìí¼Ó Jagen ΪMSNºÃÓѠͨ¹ýMSNºÍ Jagen ½»Ì¸ QQ


QUOTE:
Ô­ÌûÓÉ haulm ÓÚ 2008-1-26 17:15 ·¢±í
Óе㸴ÔÓ£¬²»¹ýÄÚÈݵÄÈ·¾ÍÊÇLFS¹¤¾ßÁ´Ô­Îĵķ­Ò룬ÓÐЩ´íÎóµÄµØ·½ÊDZêµã·ûºÅ²¢ÓÐÉÙÁ¿µÄ©ÌîÖ¸Áî¡£¾ßÌåÄÚÈÝ¿ÉÒԲο¼

http://www.linuxfromscratch.org/ ... er05/chapter05.html

ht ...

Ðֵܣ¬·¢ÏÖ´íÎóµÄµØ·½£¬±êעһϺÃÂð£¿

¶¥²¿