Node:Top, Next:, Previous:(dir), Up:(dir)

Introduction

¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤Ï¡¢GNU ¥³¥ó¥Ñ¥¤¥é¤Î»È¤¤Êý¡¢¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¡¢°Ü¿¢ÊýË¡¤ä¡¢¿·¤·¤¤µ¡Ç½¤ä¸ß´¹À­¤Î̵¤¤Éôʬ¡¢¤½¤ì¤Ë¥Ð¥°¥ì¥Ý¡¼¥È¤ÎÊýË¡¤Ê¤É¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ë¡£GNU CC ¤Î¥Ð¡¼¥¸¥ç¥ó 2.95 ¤ËÂбþ¤·¤Æ¤¤¤ë¡£(ÆüËܸìÈǥɥé¥Õ¥È-17 July 2001)


Node:G++ and GCC, Next:, Previous:Top, Up:Top

C, C++, Objective C, Fortran ¤Î¥³¥ó¥Ñ¥¤¥ë

C, C++, Objective C, Fortran Ëè¤Ëʬ¤«¤ì¤Æ¤¤¤¿¥³¥ó¥Ñ¥¤¥é¤Ï¸½ºß¤Ç¤Ï°ì¤Ä¤ËÅý¹ç¤µ¤ì¤Æ¤¤¤ë¡£¤³¤Î¤¿¤á²æ¡¹¤Ï¡ÖGNU ¥³¥ó¥Ñ¥¤¥é½¸¡×(GNU Compiler Collection) ¤È¤¤¤¦Ì¾Á°¤ò»È¤¦¤³¤È¤Ë¤·¤¿¡£GNU C ¥³¥ó¥Ñ¥¤¥é¤Ï, C, C++, Objective C, Fortran ¤Ç½ñ¤«¤ì¤¿¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£Fortran ¥³¥ó¥Ñ¥¤¥é¤Ë¤Ä¤¤¤Æ¤ÏÆÈΩ¤·¤¿¥Þ¥Ë¥å¥¢¥ë¤ÇÀâÌÀ¤·¤Æ¤¤¤ë¡£

GCC ¤È¤¤¤¦¤Î¤Ï¡¢GNU ¥³¥ó¥Ñ¥¤¥é½¸(GNU Compiler Collection)¤Î¤è¤¯¤¢¤ë¾Êά·Á¤Ç¤¢¤ë¡£²æ¡¹¤Î¥³¥ó¥Ñ¥¤¥é¤ÎºÇ¤â°ìÈÌŪ¤Ê̾Á°¤Ç¤â¤¢¤ë¤·¡¢C ¸À¸ì¤Î¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤Ë¾ÇÅÀ¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë»È¤ï¤ì¤ë̾Á°¤Ç¤â¤¢¤ë(¤³¤Î¾Êά·Á¤Ï°ÊÁ°¤Ï "GNU C Compiler" ¤òɽ¤·¤Æ¤¤¤¿)¡£

C++ ¥×¥í¥°¥é¥à¤Î¥³¥ó¥Ñ¥¤¥ë¤Ë¤Ä¤¤¤Æ¸À¤¦¤È¤­¤Ë¤Ï¡¢G++ ¤È¸Æ¤Ö¤Î¤¬ÉáÄ̤Ǥ¢¤ë¡£¥³¥ó¥Ñ¥¤¥é¼«ÂΤϰì¤Ä¤·¤«¤Ê¤¤¤Î¤Ç¡¢ÂоݤȤ¹¤ë¸À¸ì¤¬¤Ê¤ó¤Ç¤¢¤ì¡¢GCC ¤È¸Æ¤Ö¤Î¤ÏÁ´¤¯Àµ¤·¤¤¡£¤À¤¬¡¢C++ ¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤À¤È¤¤¤¦¤³¤È¤ò¶¯Ä´¤¹¤ë¤È¤­¤Ï¡¢G++ ¤È¸Æ¤Ö¤Î¤¬ÊØÍø¤Ç¤¢¤ë¡£

²æ¡¹¤Ï¡¢"GCC" ¤ò¥³¥ó¥Ñ¥¤¥é¥·¥¹¥Æ¥àÁ´ÂΤò»Ø¤¹Ì¾Á°¤È¤·¤Æ»È¤¦¡£¤â¤¦¾¯¤·Àµ³Î¤Ë¤Ï¡¢¤³¤Î¥³¥ó¥Ñ¥¤¥é¤Î¸À¸ìÈó°Í¸Éô¤ò»Ø¤¹¡£Î㤨¤Ð¡¢¡ÖGCC¡×¤Îưºî¤Ë±Æ¶Á¤¹¤ëºÇŬ²½¥ª¥×¥·¥ç¥ó¤È¸À¤Ã¤¿¤ê¡¢¤¢¤ë¤¤¤Ïñ¤Ë¡Ö¥³¥ó¥Ñ¥¤¥é¡×¤È¸À¤Ã¤¿¤ê¤¹¤ë¤³¤È¤â¤¢¤ë¡£

¾¤Î¸À¸ì¥Õ¥í¥ó¥È¥¨¥ó¥É¤È¤·¤Æ¡¢Ada 9X, Fortran, Modula-3, Pascal ¤Ë¤Ä¤¤¤Æ³«È¯Ãæ¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î¥Õ¥í¥ó¥È¥¨¥ó¥É¤Ï¡¢C++ ¤ÈƱÍÍ¡¢GNU CC ¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ç¹½ÃÛ¤µ¤ì¡¢GCC ¤Ë¥ê¥ó¥¯¤µ¤ì¤ë¡£¤³¤Î·ë²Ì¡¢Åý¹ç¤µ¤ì¤¿¥³¥ó¥Ñ¥¤¥é¤¬½ÐÍè¾å¤¬¤ê¡¢C, C++, Objective C, ¤¢¤ë¤¤¤Ï¥æ¡¼¥¶¤¬¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Õ¥í¥ó¥È¥¨¥ó¥É¤Î¸À¸ì¤¬¥³¥ó¥Ñ¥¤¥ë½ÐÍè¤ë¤³¤È¤Ë¤Ê¤ë¡£

Ëܥޥ˥奢¥ë¤Ç¤Ï¡¢C¡¢Objective-C¡¢C++ ¥³¥ó¥Ñ¥¤¥é¤Î¥ª¥×¥·¥ç¥ó¤È¡¢GCC ¤ÎÃæ³ËÉôʬ¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Î¤ß²òÀâ¤ò¹Ô¤¦¡£Â¾¤Î¸À¸ì¤Ç½ñ¤«¤ì¤¿¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ëºÝ¤Ë»ÈÍѤ¹¤ë¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤Î¸À¸ì¤Î¥Õ¥í¥ó¥È¥¨¥ó¥É¤Îʸ½ñ¤ò»²¾È¤¹¤ë¤³¤È¡£

G++ ¤ÏËÜʪ¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¤¢¤ë¡£Ã±¤Ê¤ë¥×¥ê¥×¥í¥»¥Ã¥µ¤Ç¤Ï¤Ê¤¤¡£G++ ¤Ï¡¢C++ ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¤«¤éľÀÜ¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£Ãæ´ÖŪ¤Ê C ¤Î¥³¡¼¥É¤Ïºî¤é¤Ê¤¤¡£(ÂоÈŪ¤Ë¡¢Î㤨¤Ð¾¤Î¼ÂÁõ¤ÎÃæ¤Ë¤Ï¡¢C++ ¥½¡¼¥¹¤«¤é C ¥×¥í¥°¥é¥à¤òÀ¸À®¤¹¤ë¤â¤Î¤â¤¢¤ë¡£) C ¸À¸ì¤Ë¤è¤ëÃæ´Öɽ¸½¤ò»È¤ï¤Ê¤¤¤³¤È¤Ç¡¢¤è¤êÎɤ¤¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥É¡¢¤è¤êÎɤ¤¥Ç¥Ð¥Ã¥°¾ðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£GNU ¥Ç¥Ð¥Ã¥¬ GDB ¤ò»È¤¨¤Ð¡¢¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥ÉÃæ¤Î¡¢¤³¤Î¤è¤êÎɤ¤¥Ç¥Ð¥Ã¥°¾ðÊó¤È¹ç¤ï¤»¤Æ¡¢C++ ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹¥³¡¼¥É¥ì¥Ù¥ë¤ÎÊÔ½¸(¥Ç¥Ð¥Ã¥°)µ¡Ç½¤Î²¸·Ã¤ò¼õ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£


Node:Invoking GCC, Next:, Previous:G++ and GCC, Up:Top

GCC ¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó

GCC ¤òµ¯Æ°¤¹¤ë¤È¡¢ÉáÄ̤ϡ¢¥×¥ê¥×¥í¥»¥¹¡¢¥³¥ó¥Ñ¥¤¥ë¡¢¥¢¥»¥ó¥Ö¥ë¡¢¥ê¥ó¥¯¤ò¹Ô¤Ê¤¦¡£"overall options" ¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¤³¤Î²áÄø¤òÃæ´Ö¤ÎÃʳ¬¤Ç»ß¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£Î㤨¤Ð¡¢-c ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢¥ê¥ó¥«¤òµ¯Æ°¤·¤Ê¤¤¡£¤½¤·¤Æ¡¢½ÐÎϤϥ¢¥»¥ó¥Ö¥é¤Î½ÐÎϤǤ¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤«¤é¤Ê¤ë¡£

¤½¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¾åµ­¤Î²áÄø¤Î°ì¤Ä¤ÎÃʳ¬¤Ë¼õ¤±ÅϤµ¤ì¤ë¡£¥×¥ê¥×¥í¥»¥Ã¥µ¤òÀ©¸æ¤¹¤ë¥ª¥×¥·¥ç¥ó¤â¤¢¤ë¤·¡¢¥³¥ó¥Ñ¥¤¥éËÜÂΤòÀ©¸æ¤¹¤ë¥ª¥×¥·¥ç¥ó¤â¤¢¤ë¡£¤µ¤é¤Ë¡¢¤½¤Î¾¤Ë¡¢¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤òÀ©¸æ¤¹¤ë¥ª¥×¥·¥ç¥ó¤â¤¢¤ë¤¬¡¢¤Û¤È¤ó¤É¤Î¥ª¥×¥·¥ç¥ó¤ÏÌÇ¿¤ËɬÍפˤʤ뤳¤È¤Ï¤Ê¤¤¤Î¤Ç¡¢¤³¤³¤Ç¤ÏÀâÌÀ¤·¤Ê¤¤¡£

GCC ¤Ë»ØÄê¤Ç¤­¤ë¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Ï¡¢ÂçÉôʬ¤¬ C ¸À¸ì¸þ¤±¤Ç¤¢¤ë¡£Â¾¤Î¸À¸ì(C++ ¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤)¤Ç¤â»È¤¨¤ë¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÌÀ¼¨Åª¤Ë¤½¤Î»Ý¤ò½ñ¤¯¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£¥½¡¼¥¹¥×¥í¥°¥é¥à¤Î¸À¸ì¤Ë¤Ä¤¤¤Æµ­½Ò¤Î¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ï¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¸À¸ì¤ËÂФ·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

C++ ¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤ÎÆÃÊ̤ʥª¥×¥·¥ç¥ó¤ÎÍ×Ìó¤Ë¤Ä¤¤¤Æ¤Ï¡¢See Compiling C++ Programs.

gcc ¤Ï¡¢¥ª¥×¥·¥ç¥ó¤È¥Õ¥¡¥¤¥ë̾¤ò°ú¿ô¤È¤·¤Æ¼õ¤±ÉÕ¤±¤ë¡£Ê£¿ô¤Îʸ»ú¤«¤é¤Ê¤ë̾Á°¤ò»ý¤Ä¥ª¥×¥·¥ç¥ó¤¬¤¿¤¯¤µ¤ó¤¢¤ë¤Î¤Ç¡¢°ìʸ»ú¤Î¥ª¥×¥·¥ç¥ó¤ò¤Þ¤È¤á¤Æ»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£Î㤨¤Ð¡¢-dr ¤È¤¤¤¦¥ª¥×¥·¥ç¥ó¤Ï¡¢-d -r ¤È¤ÏÁ´¤¯°Û¤Ê¤ë»ØÄê¤Ë¤Ê¤ë¡£

¥ª¥×¥·¥ç¥ó¤È¤½¤ì°Ê³°¤Î°ú¿ô¤òÆþ¤êº®¤¼¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£°ú¿ô¤Î½ç½ø¤ÏÌäÂê¤Ë¤Ê¤é¤Ê¤¤¾ì¹ç¤¬Â¿¤¤¡£ÌäÂê¤Ë¤Ê¤ë¤Î¤Ï¡¢Æ±¤¸¼ïÎà¤Î¥ª¥×¥·¥ç¥ó¤ò½Å¤Í¤Æ»È¤¦¤È¤­¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢-L ¥ª¥×¥·¥ç¥ó¤òÊ£¿ô²ó»ØÄꤹ¤ë¤È¡¢»ØÄꤵ¤ì¤¿½çÈ֤ǥǥ£¥ì¥¯¥È¥ê¤ò¸¡º÷¤¹¤ë¡£

-f ¤ä -W ¤Ç»Ï¤Þ¤ëŤ¤Ì¾Á°¤Î¥ª¥×¥·¥ç¥ó¤¬¤¿¤¯¤µ¤ó¤¢¤ë¡£Î㤨¤Ð¡¢-fforce-mem¡¢-fstrength-reduce¡¢-Wformat ¤È¤¤¤Ã¤¿¤â¤Î¤À¡£¤³¤Î¼ïÎà¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¤Û¤È¤ó¤É¤¬¡¢¹ÎÄê·Á¼°¤ÈÈÝÄê·Á¼°¤ÎξÊý¤Î·Á¼°¤ò»ý¤Ä¡£Î㤨¤Ð¡¢-ffoo ¤ÎÈÝÄê·Á¼°¤Ï -fno-foo ¤Ë¤Ê¤ë¡£¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤Ï¡¢Æó¤Ä¤Î·Á¼°¤Î¤¦¤Á¤Î¤É¤Á¤é¤«¤Î¤ß¡¢¤Ä¤Þ¤ê¥Ç¥Õ¥©¥ë¥È¤Ç¤Ê¤¤Êý¤Î¤ß¤òÀâÌÀ¤¹¤ë¡£


Node:Option Summary, Next:, Previous:Invoking GCC, Up:Invoking GCC

¥ª¥×¥·¥ç¥óÍ×Ìó

°Ê²¼¤ËÁ´¥ª¥×¥·¥ç¥ó¤ÎÍ×Ìó¤ò¼ïÎàËè¤Ëʬ¤±¤Æ¼¨¤¹¡£²òÀâ¤Ï¸å¤ÎÀá¤Ç¹Ô¤Ê¤¦¡£

Overall Options
See ½ÐÎϤμïÎà¤ÎÀ©¸æ¥ª¥×¥·¥ç¥ó.
-c  -S  -E  -o file  -pipe  -v  --help  -x language

C ¸À¸ì¥ª¥×¥·¥ç¥ó
See C Êý¸À¤ò°·¤¦¥ª¥×¥·¥ç¥ó.
-ansi -fstd  -fallow-single-precision  -fcond-mismatch  -fno-asm
-fno-builtin  -ffreestanding  -fhosted  -fsigned-bitfields  -fsigned-char
-funsigned-bitfields  -funsigned-char  -fwritable-strings
-traditional  -traditional-cpp  -trigraphs

C++ ¸À¸ì¥ª¥×¥·¥ç¥ó
See C++ Êý¸À¤ò°·¤¦¥ª¥×¥·¥ç¥ó.
-fno-access-control  -fcheck-new  -fconserve-space  -fdollars-in-identifiers
-fno-elide-constructors  -fexternal-templates  -ffor-scope
-fno-for-scope  -fno-gnu-keywords  -fguiding-decls  -fhandle-signatures
-fhonor-std -fhuge-objects  -fno-implicit-templates  -finit-priority
-fno-implement-inlines -fname-mangling-version-n  -fno-default-inline
-foperator-names  -fno-optional-diags  -fpermissive -frepo  -fstrict-prototype
-fsquangle  -ftemplate-depth-n  -fthis-is-variable  -fvtable-thunks
-nostdinc++  -Wctor-dtor-privacy -Wno-deprecated -Weffc++
-Wno-non-template-friend
-Wnon-virtual-dtor  -Wold-style-cast  -Woverloaded-virtual
-Wno-pmf-conversions  -Wreorder  -Wsign-promo  -Wsynth

·Ù¹ð¥ª¥×¥·¥ç¥ó
See ·Ù¹ð¤òÍ׵᡿Í޻ߤ¹¤ë¥ª¥×¥·¥ç¥ó.
-fsyntax-only  -pedantic  -pedantic-errors
-w  -W  -Wall  -Waggregate-return  -Wbad-function-cast
-Wcast-align  -Wcast-qual  -Wchar-subscripts  -Wcomment
-Wconversion  -Werror  -Wformat
-Wid-clash-len  -Wimplicit -Wimplicit-int
-Wimplicit-function-declaration  -Wimport
-Werror-implicit-function-declaration  -Winline
-Wlarger-than-len  -Wlong-long
-Wmain  -Wmissing-declarations  -Wmissing-noreturn
-Wmissing-prototypes  -Wmultichar  -Wnested-externs  -Wno-import
-Wparentheses -Wpointer-arith  -Wredundant-decls
-Wreturn-type -Wshadow  -Wsign-compare  -Wstrict-prototypes
-Wswitch  -Wtraditional
-Wtrigraphs -Wundef  -Wuninitialized  -Wunused  -Wwrite-strings
-Wunknown-pragmas

¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó
See ÆÉ¼Ô¤Î¥×¥í¥°¥é¥à¤ä GCC ¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë ¤¿¤á¤Î¥ª¥×¥·¥ç¥ó.
-a  -ax  -dletters  -fdump-unnumbered -fpretend-float
-fprofile-arcs  -ftest-coverage
-g  -glevel  -gcoff  -gdwarf  -gdwarf-1  -gdwarf-1+  -gdwarf-2
-ggdb  -gstabs  -gstabs+  -gxcoff  -gxcoff+
-p  -pg  -print-file-name=library  -print-libgcc-file-name
-print-prog-name=program  -print-search-dirs  -save-temps

ºÇŬ²½¥ª¥×¥·¥ç¥ó
See ºÇŬ²½¥ª¥×¥·¥ç¥ó.
-fbranch-probabilities  -foptimize-register-moves
-fcaller-saves  -fcse-follow-jumps  -fcse-skip-blocks
-fdelayed-branch   -fexpensive-optimizations
-ffast-math  -ffloat-store  -fforce-addr  -fforce-mem
-fdata-sections -ffunction-sections  -fgcse
-finline-functions -finline-limit-n -fkeep-inline-functions
-fno-default-inline -fno-defer-pop  -fno-function-cse
-fno-inline  -fno-peephole  -fomit-frame-pointer -fregmove
-frerun-cse-after-loop  -frerun-loop-opt -fschedule-insns
-fschedule-insns2  -fstrength-reduce  -fthread-jumps
-funroll-all-loops  -funroll-loops
-fmove-all-movables  -freduce-all-givs -fstrict-aliasing
-O  -O0  -O1  -O2  -O3 -Os

¥×¥ê¥×¥í¥»¥Ã¥µ¥ª¥×¥·¥ç¥ó
See ¥×¥ê¥×¥í¥»¥Ã¥µ¥ª¥×¥·¥ç¥ó.
-Aquestion(answer)  -C  -dD  -dM  -dN
-Dmacro[=defn]  -E  -H
-idirafter dir
-include file  -imacros file
-iprefix file  -iwithprefix dir
-iwithprefixbefore dir  -isystem dir -isystem-c++ dir
-M  -MD  -MM  -MMD  -MG  -nostdinc  -P  -trigraphs
-undef  -Umacro  -Wp,option

¥¢¥»¥ó¥Ö¥é¤Î¥ª¥×¥·¥ç¥ó
See ¥¢¥»¥ó¥Ö¥é¤ËÅϤµ¤ì¤ë¥ª¥×¥·¥ç¥ó.
-Wa,option

¥ê¥ó¥«¤Î¥ª¥×¥·¥ç¥ó
See ¥ê¥ó¥¯¥ª¥×¥·¥ç¥ó.
object-file-name  -llibrary
-nostartfiles  -nodefaultlibs  -nostdlib
-s  -static  -shared  -symbolic
-Wl,option  -Xlinker option
-u symbol

¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Ø¤¹¤ë¥ª¥×¥·¥ç¥ó
See ¥Ç¥£¥ì¥¯¥È¥ê¸¡º÷ÍÑ¥ª¥×¥·¥ç¥ó.
-Bprefix  -Idir  -I-  -Ldir  -specs=file

¥¿¡¼¥²¥Ã¥È¥ª¥×¥·¥ç¥ó
See Target Options.
-b machine  -V version

µ¡¼ï°Í¸¤Î¥ª¥×¥·¥ç¥ó
See ¥Ï¡¼¥É¥¦¥§¥¢¥â¥Ç¥ë¤È¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó.
M680x0 ÍÑ¥ª¥×¥·¥ç¥ó
-m68000  -m68020  -m68020-40  -m68020-60  -m68030  -m68040
-m68060  -mcpu32 -m5200  -m68881  -mbitfield  -mc68000  -mc68020
-mfpa -mnobitfield  -mrtd  -mshort  -msoft-float
-malign-int

VAX ÍÑ¥ª¥×¥·¥ç¥ó
-mg  -mgnu  -munix

SPARC ÍÑ¥ª¥×¥·¥ç¥ó
-mcpu=cpu type
-mtune=cpu type
-mcmodel=code model
-malign-jumps=num  -malign-loops=num
-malign-functions=num
-m32  -m64
-mapp-regs  -mbroken-saverestore  -mcypress  -mepilogue
-mflat  -mfpu  -mhard-float  -mhard-quad-float
-mimpure-text  -mlive-g0  -mno-app-regs  -mno-epilogue
-mno-flat  -mno-fpu  -mno-impure-text
-mno-stack-bias  -mno-unaligned-doubles
-msoft-float  -msoft-quad-float  -msparclite  -mstack-bias
-msupersparc  -munaligned-doubles  -mv8

Convex ÍÑ¥ª¥×¥·¥ç¥ó
-mc1  -mc2  -mc32  -mc34  -mc38
-margcount  -mnoargcount
-mlong32  -mlong64
-mvolatile-cache  -mvolatile-nocache

AMD29K ÍÑ¥ª¥×¥·¥ç¥ó
-m29000  -m29050  -mbw  -mnbw  -mdw  -mndw
-mlarge  -mnormal  -msmall
-mkernel-registers  -mno-reuse-arg-regs
-mno-stack-check  -mno-storem-bug
-mreuse-arg-regs  -msoft-float  -mstack-check
-mstorem-bug  -muser-registers

ARM ÍÑ¥ª¥×¥·¥ç¥ó
-mapcs-frame -mno-apcs-frame
-mapcs-26 -mapcs-32
-mapcs-stack-check -mno-apcs-stack-check
-mapcs-float -mno-apcs-float
-mapcs-reentrant -mno-apcs-reentrant
-msched-prolog -mno-sched-prolog
-mlittle-endian -mbig-endian -mwords-little-endian
-mshort-load-bytes -mno-short-load-bytes -mshort-load-words -mno-short-load-words
-msoft-float -mhard-float -mfpe
-mthumb-interwork -mno-thumb-interwork
-mcpu= -march= -mfpe=
-mstructure-size-boundary=
-mbsd -mxopen -mno-symrename
-mabort-on-noreturn
-mno-sched-prolog

Thumb ÍÑ¥ª¥×¥·¥ç¥ó
-mtpcs-frame -mno-tpcs-frame
-mtpcs-leaf-frame -mno-tpcs-leaf-frame
-mlittle-endian  -mbig-endian
-mthumb-interwork -mno-thumb-interwork
-mstructure-size-boundary=

MN10200 ÍÑ¥ª¥×¥·¥ç¥ó
-mrelax

MN10300 ÍÑ¥ª¥×¥·¥ç¥ó
-mmult-bug
-mno-mult-bug
-mrelax

M32R/D ÍÑ¥ª¥×¥·¥ç¥ó
-mcode-model=model type  -msdata=sdata type
-G num

M88K ÍÑ¥ª¥×¥·¥ç¥ó
-m88000  -m88100  -m88110  -mbig-pic
-mcheck-zero-division  -mhandle-large-shift
-midentify-revision  -mno-check-zero-division
-mno-ocs-debug-info  -mno-ocs-frame-position
-mno-optimize-arg-area  -mno-serialize-volatile
-mno-underscores  -mocs-debug-info
-mocs-frame-position  -moptimize-arg-area
-mserialize-volatile  -mshort-data-num  -msvr3
-msvr4  -mtrap-large-shift  -muse-div-instruction
-mversion-03.00  -mwarn-passed-structs

RS/6000 ¤È PowerPC ÍÑ¥ª¥×¥·¥ç¥ó
-mcpu=cpu type
-mtune=cpu type
-mpower  -mno-power  -mpower2  -mno-power2
-mpowerpc  -mno-powerpc
-mpowerpc-gpopt  -mno-powerpc-gpopt
-mpowerpc-gfxopt  -mno-powerpc-gfxopt
-mnew-mnemonics  -mno-new-mnemonics
-mfull-toc   -mminimal-toc  -mno-fop-in-toc  -mno-sum-in-toc
-maix64  -maix32  -mxl-call  -mno-xl-call  -mthreads  -mpe
-msoft-float  -mhard-float  -mmultiple  -mno-multiple
-mstring  -mno-string  -mupdate  -mno-update
-mfused-madd  -mno-fused-madd  -mbit-align  -mno-bit-align
-mstrict-align  -mno-strict-align  -mrelocatable
-mno-relocatable  -mrelocatable-lib  -mno-relocatable-lib
-mtoc  -mno-toc -mlittle  -mlittle-endian  -mbig  -mbig-endian
-mcall-aix  -mcall-sysv  -mprototype  -mno-prototype
-msim  -mmvme  -mads  -myellowknife  -memb -msdata
-msdata=opt  -G num

RT ÍÑ¥ª¥×¥·¥ç¥ó
-mcall-lib-mul  -mfp-arg-in-fpregs  -mfp-arg-in-gregs
-mfull-fp-blocks  -mhc-struct-return  -min-line-mul
-mminimum-fp-blocks  -mnohc-struct-return

MIPS ÍÑ¥ª¥×¥·¥ç¥ó
-mabicalls  -mcpu=cpu type  -membedded-data
-membedded-pic  -mfp32  -mfp64  -mgas  -mgp32  -mgp64
-mgpopt  -mhalf-pic  -mhard-float  -mint64  -mips1
-mips2  -mips3 -mips4 -mlong64  -mlong32 -mlong-calls  -mmemcpy
-mmips-as  -mmips-tfile  -mno-abicalls
-mno-embedded-data  -mno-embedded-pic
-mno-gpopt  -mno-long-calls
-mno-memcpy  -mno-mips-tfile  -mno-rnames  -mno-stats
-mrnames  -msoft-float
-m4650  -msingle-float  -mmad
-mstats  -EL  -EB  -G num  -nocpp
-mabi=32 -mabi=n32 -mabi=64 -mabi=eabi

i386 ÍÑ¥ª¥×¥·¥ç¥ó
-mcpu=cpu type
-march=cpu type
-mieee-fp  -mno-fancy-math-387
-mno-fp-ret-in-387  -msoft-float  -msvr3-shlib
-mno-wide-multiply  -mrtd  -malign-double
-mreg-alloc=list  -mregparm=num
-malign-jumps=num  -malign-loops=num
-malign-functions=num -mpreferred-stack-boundary=num

HPPA ÍÑ¥ª¥×¥·¥ç¥ó
-march=architecture type
-mbig-switch  -mdisable-fpregs  -mdisable-indexing
-mfast-indirect-calls -mgas  -mjump-in-delay
-mlong-load-store  -mno-big-switch  -mno-disable-fpregs
-mno-disable-indexing  -mno-fast-indirect-calls  -mno-gas
-mno-jump-in-delay  -mno-long-load-store
-mno-portable-runtime  -mno-soft-float  -mno-space
-mno-space-regs  -msoft-float  -mpa-risc-1-0
-mpa-risc-1-1  -mpa-risc-2-0 -mportable-runtime
-mschedule=cpu type  -mspace  -mspace-regs

Intel 960 ÍÑ¥ª¥×¥·¥ç¥ó
-mcpu type  -masm-compat  -mclean-linkage
-mcode-align  -mcomplex-addr  -mleaf-procedures
-mic-compat  -mic2.0-compat  -mic3.0-compat
-mintel-asm  -mno-clean-linkage  -mno-code-align
-mno-complex-addr  -mno-leaf-procedures
-mno-old-align  -mno-strict-align  -mno-tail-call
-mnumerics  -mold-align  -msoft-float  -mstrict-align
-mtail-call

DEC Alpha ÍÑ¥ª¥×¥·¥ç¥ó
-mfp-regs  -mno-fp-regs -mno-soft-float  -msoft-float
-malpha-as -mgas
-mieee  -mieee-with-inexact  -mieee-conformant
-mfp-trap-mode=mode  -mfp-rounding-mode=mode
-mtrap-precision=mode  -mbuild-constants
-mcpu=cpu type
-mbwx -mno-bwx -mcix -mno-cix -mmax -mno-max
-mmemory-latency=time

Clipper ÍÑ¥ª¥×¥·¥ç¥ó
-mc300  -mc400

H8/300 ÍÑ¥ª¥×¥·¥ç¥ó
-mrelax  -mh -ms -mint32  -malign-300

SH ÍÑ¥ª¥×¥·¥ç¥ó
-m1  -m2  -m3  -m3e  -mb  -ml  -mdalign -mrelax

System V ÍÑ¥ª¥×¥·¥ç¥ó
-Qy  -Qn  -YP,paths  -Ym,dir

ARC ÍÑ¥ª¥×¥·¥ç¥ó
-EB  -EL
-mmangle-cpu  -mcpu=cpu  -mtext=text section
-mdata=data section  -mrodata=readonly data section

TMS320C3x/C4x ÍÑ¥ª¥×¥·¥ç¥ó
-mcpu=cpu -mbig -msmall -mregparm -mmemparm
-mfast-fix -mmpyi -mbk -mti -mdp-isr-reload
-mrpts=count  -mrptb -mdb -mloop-unsigned
-mparallel-insns -mparallel-mpy -mpreserve-float

V850 ÍÑ¥ª¥×¥·¥ç¥ó
-mlong-calls -mno-long-calls -mep -mno-ep
-mprolog-function -mno-prolog-function -mspace
-mtda=n -msda=n -mzda=n
-mv850 -mbig-switch

NS32K ÍÑ¥ª¥×¥·¥ç¥ó
-m32032 -m32332 -m32532 -m32081 -m32381 -mmult-add -mnomult-add
-msoft-float -mrtd -mnortd -mregparam -mnoregparam -msb -mnosb
-mbitfield -mnobitfield -mhimem -mnohimem

¥³¡¼¥ÉÀ¸À®¥ª¥×¥·¥ç¥ó
See ¥³¡¼¥ÉÀ¸À®µ¬Ìó¤Ë¤Ä¤¤¤Æ¤Î¥ª¥×¥·¥ç¥ó.
-fcall-saved-reg  -fcall-used-reg
-fexceptions -ffixed-reg  -finhibit-size-directive
-fcheck-memory-usage  -fprefix-function-name
-fno-common  -fno-ident  -fno-gnu-linker
-fpcc-struct-return  -fpic  -fPIC
-freg-struct-return  -fshared-data  -fshort-enums
-fshort-double  -fvolatile  -fvolatile-global -fvolatile-static
-fverbose-asm -fpack-struct  -fstack-check
-fargument-alias  -fargument-noalias
-fargument-noalias-global
-fleading-underscore


Node:Overall Options, Next:, Previous:Option Summary, Up:Invoking GCC

½ÐÎϤμïÎà¤ÎÀ©¸æ¥ª¥×¥·¥ç¥ó

¥³¥ó¥Ñ¥¤¥ë²áÄø¤Ï¡¢»Í¤Ä¤ÎÃʳ¬¤Ëʬ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥×¥ê¥×¥í¥»¥¹¡¢¥³¥ó¥Ñ¥¤¥ë¤½¤Î¤â¤Î¡¢¥¢¥»¥ó¥Ö¥ë¡¢¤½¤ì¤Ë¥ê¥ó¥¯¤Ç¤¢¤ê¡¢É¬¤º¤³¤Î½çÈ֤Ǥ¢¤ë¡£Á°¤Î»°¤Ä¤ÎÃʳ¬¤Ï¸Ä¡¹¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÅ¬ÍѤµ¤ì¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÎÀ¸À®¤Ç½ª¤ï¤ë¡£¥ê¥ó¥¯¤Ç¤Ï¡¢Á´¤Æ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë(¿·¤·¤¯¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¡¢ÆþÎϤȤ·¤Æ¤·¤Æ¤¤¤µ¤ì¤¿¤â¤Î)¤òÁȤ߹ç¤ï¤»¤Æ¡¢°ì¤Ä¤Î¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤òºî¤ë¡£

»ØÄꤵ¤ì¤¿ÆþÎÏ¥Õ¥¡¥¤¥ëËè¤Ë¡¢¥Õ¥¡¥¤¥ë̾¤Î¥µ¥Õ¥£¥Ã¥¯¥¹¤«¤é¥³¥ó¥Ñ¥¤¥ë²áÄø¤Î¤É¤ì¤¬¼Â¹Ô¤µ¤ì¤ë¤«¤¬·èÄꤵ¤ì¤ë¡£

file.c
C ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢¥×¥ê¥×¥í¥»¥¹¤¬É¬ÍפǤ¢¤ë¡£
file.i
C ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢¥×¥ê¥×¥í¥»¥¹¤ò¹Ô¤Ê¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£
file.ii
C++ ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢¥×¥ê¥×¥í¥»¥¹¤ò¹Ô¤Ê¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£
file.m
Objective-C ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£Objective-C ¤Î¥×¥í¥°¥é¥à¤È¤·¤ÆÆ°ºî¤µ¤»¤ë¤Ë¤Ï¡¢¥é¥¤¥Ö¥é¥ê libobjc.a ¤ò¥ê¥ó¥¯¤¹¤ëɬÍפ¬¤¢¤ë¤³¤È¤ËÃí°Õ¡£
file.h
C ¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë(¥³¥ó¥Ñ¥¤¥ë¤ä¥ê¥ó¥¯¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¤)¡£
file.cc
file.cxx
file.cpp
file.C
C++ ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¡¢¥×¥ê¥×¥í¥»¥¹¤¬É¬ÍפǤ¢¤ë¡£.cxx ¤ÎºÇ¸å¤ÎÆóʸ»ú¤Ï»úÌ̤ɤª¤ê x ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Æ±¤¸¤¯¡¢.C ¤Ï»úÌ̤ɤª¤ê¤ÎÂçʸ»ú¤Î C ¤Ç¤¢¤ë¡£
file.s
¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¥Õ¥¡¥¤¥ë¡£
file.S
¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¡¢¥×¥ê¥×¥í¥»¥¹¤¬É¬ÍפǤ¢¤ë¡£
other
¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¡¢¤½¤Î¤Þ¤Þ¥ê¥ó¥¯¥Õ¥§¡¼¥º¤ËÅϤµ¤ì¤ë¡£Ç§¼±¤Ç¤­¤Ê¤¤¥µ¥Õ¥£¥Ã¥¯¥¹¤ò»ý¤¿¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤âƱ¤¸¤è¤¦¤Ë°·¤ï¤ì¤ë¡£

-x ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤ÇÆþÎϤθÀ¸ì¤òÌÀ¼¨Åª¤Ë»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£

-x language
¸å³¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î¸À¸ì¤ò(¥³¥ó¥Ñ¥¤¥é¤Ë¡¢¥Õ¥¡¥¤¥ë̾¤Î¥µ¥Õ¥£¥Ã¥¯¥¹¤«¤é¥Ç¥Õ¥©¥ë¥È¤òÁªÂò¤¹¤ë¤Î¤ò¤Þ¤«¤»¤ë¤Î¤Ç¤Ï¤Ê¤¯¤Æ)¡¢ÌÀ¼¨Åª¤Ë language ¤È»ØÄꤹ¤ë¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¼¡¤Ë -x ¥ª¥×¥·¥ç¥ó¤¬¸½¤ì¤ë¤Þ¤Ç¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÅ¬ÍѤµ¤ì¤ë¡£language ¤Ë»ØÄê¤Ç¤­¤ëÃͤϰʲ¼¤Î¤È¤ª¤ê¡£
c  objective-c  c++
c-header  cpp-output  c++-cpp-output
assembler  assembler-with-cpp

-x none
¸À¸ì¤òÌÀ¼¨Åª¤Ë»ØÄꤹ¤ë¤Î¤ò¼è¤ê»ß¤á¤ë¡£¤³¤ì°Ê¹ß¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë̾¤Î¥µ¥Õ¥£¥Ã¥¯¥¹¤Ë½¾¤Ã¤Æ(-x ¥ª¥×¥·¥ç¥ó¤¬Á´¤¯»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¤Î¤ÈƱ¤¸¤è¤¦¤Ë)½èÍý¤µ¤ì¤ë¡£

¥³¥ó¥Ñ¥¤¥ë²áÄø¤Î°ìÉôʬ¤À¤±¼Â¹Ô¤·¤¿¤¤¾ì¹ç¤Ï¡¢-x (¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë̾¥µ¥Õ¥£¥Ã¥¯¥¹) ¤ò»È¤Ã¤Æ³«»Ï¤¹¤ëÃʳ¬¤ò»ØÄꤹ¤ë¤³¤È¤¬½ÐÍè¤ë¡£¤É¤ÎÃʳ¬¤Ç½ªÎ»¤¹¤ë¤«¤Ï¡¢¥ª¥×¥·¥ç¥ó -c¡¢-S¡¢-E ¤Î¤É¤ì¤«°ì¤Ä¤ò»È¤Ã¤Æ»ØÄꤹ¤ë¡£Áȹ礻¤Ë¤è¤Ã¤Æ¤Ï(Î㤨¤Ð¡¢-x cpp-output -E)¡¢gcc ¤Ï²¿¤â¤·¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£

-c
¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¥³¥ó¥Ñ¥¤¥ë¤ä¥¢¥»¥ó¥Ö¥ë¤Ï¹Ô¤Ê¤¦¤¬¡¢¥ê¥ó¥¯¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡£Ã±¤Ë¥ê¥ó¥¯Ãʳ¬¤ò¹Ô¤Ê¤ï¤Ê¤¤¤Î¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¤ÎºÇ½ªÅª¤Ê½ÐÎϤϡ¢³Æ¥½¡¼¥¹¥Õ¥¡¥¤¥ëËè¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È¤¤¤¦·Á¤Ë¤Ê¤ë¡£

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë̾¤Ï¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë̾¤Î¥µ¥Õ¥£¥Ã¥¯¥¹ .c¡¢.i¡¢.s Åù¤ò .o ¤ËÃÖ¤­´¹¤¨¤¿¤â¤Î¤Ë¤Ê¤ë¡£

ǧ¼±¤Ç¤­¤Ê¤¤ÆþÎÏ¥Õ¥¡¥¤¥ë¤Ç¡¢¥³¥ó¥Ñ¥¤¥ë¤ä¥¢¥»¥ó¥Ö¥ë¤¬Í׵ᤵ¤ì¤Ê¤¤¤â¤Î¤Ï̵»ë¤µ¤ì¤ë¡£

-S
¥³¥ó¥Ñ¥¤¥ëËÜÂΤÎÃʳ¬¤Ç½ªÎ»¤¹¤ë¡£¥¢¥»¥ó¥Ö¥ë¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡£½ÐÎϤϡ¢»ØÄꤵ¤ì¤¿¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¤Ç¤Ê¤¤³ÆÆþÎÏ¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¥Õ¥¡¥¤¥ë·Á¼°¤È¤Ê¤ë¡£

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¢¥»¥ó¥Ö¥é¥Õ¥¡¥¤¥ë̾¤Ï¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë̾¤Î¥µ¥Õ¥£¥Ã¥¯¥¹ .c¡¢.i Åù¤ò .s ¤ËÃÖ¤­´¹¤¨¤¿¤â¤Î¤Ë¤Ê¤ë¡£

¥³¥ó¥Ñ¥¤¥ë¤òɬÍפȤ·¤Ê¤¤ÆþÎÏ¥Õ¥¡¥¤¥ë¤Ï̵»ë¤µ¤ì¤ë¡£

-E
¥×¥ê¥×¥í¥»¥¹Ãʳ¬¤Ç½ªÎ»¤¹¤ë¡£¥³¥ó¥Ñ¥¤¥éËÜÂΤϼ¹Ԥ·¤Ê¤¤¡£½ÐÎϤϥץê¥×¥í¥»¥¹¤µ¤ì¤¿¥½¡¼¥¹¥³¡¼¥É¤Î·Á¼°¤Ç¡¢É¸½à½ÐÎϤ˽ÐÎϤµ¤ì¤ë¡£

¥×¥ê¥×¥í¥»¥¹¤òɬÍפȤ·¤Ê¤¤ÆþÎÏ¥Õ¥¡¥¤¥ë¤Ï̵»ë¤µ¤ì¤ë¡£

-o file
½ÐÎϤò»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë file ¤ËÃÖ¤¯¡£¤³¤ì¤Ï¡¢À¸À®¤µ¤ì¤ë½ÐÎϤμïÎà¤Ë¤è¤é¤Ê¤¤¡£¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤Ç¤â¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ç¤â¡¢¥¢¥»¥ó¥Ö¥é¥Õ¥£¥¢¥ë¤Ç¤â¡¢¥×¥ê¥×¥í¥»¥¹ºÑ¤Î C ¥³¡¼¥É¤Ç¤â¤«¤Þ¤ï¤Ê¤¤¡£

½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ï°ì¤Ä¤·¤«»ØÄê¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢Ê£¿ô¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¾ì¹ç¤Ë-o ¤ò»ØÄꤹ¤ë¤Î¤Ï¡¢¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤ò½ÐÎϤȤ¹¤ë¾ì¹ç¤·¤«°ÕÌ£¤¬¤Ê¤¤¡£

-o ¤Î»ØÄ꤬¤Ê¤¤¾ì¹ç¤Ï¡¢¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤Ï a.out ¤È¤¤¤¦Ì¾Á°¤Ç¡¢source.suffix ¤È¤¤¤¦¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¡¢source.o ¤È¤¤¤¦Ì¾Á°¤Ç¡¢¥¢¥»¥ó¥Ö¥é¥Õ¥¡¥¤¥ë¤Ïsource.s ¤È¤¤¤¦Ì¾Á°¤Çºî¤é¤ì¡¢¥×¥ê¥×¥í¥»¥¹¤·¤¿ C ¤Î¥½¡¼¥¹¤Ï¡¢É¸½à½ÐÎϤ˽ÐÎϤµ¤ì¤ë¡£

-v
¥³¥ó¥Ñ¥¤¥ë¤Î³ÆÃʳ¬¤Ç¼Â¹Ô¤µ¤ì¤ë¥³¥Þ¥ó¥É¤òɸ½à¥¨¥é¡¼½ÐÎϤËɽ¼¨¤¹¤ë¡£¤Þ¤¿¡¢¥³¥ó¥Ñ¥¤¥é¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à¡¢¥×¥ê¥×¥í¥»¥Ã¥µ¡¢¥³¥ó¥Ñ¥¤¥éËÜÂΤΥС¼¥¸¥ç¥óÈÖ¹æ¤â¹ç¤ï¤»¤ÆÉ½¼¨¤¹¤ë¡£
-pipe
¥³¥ó¥Ñ¥¤¥ë¤Î³ÆÃʳ¬´Ö¤Ç¤Î¾ðÊó¤Î¼õÅϤ·¤Ë¡¢°ì»þ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¡¢¥Ñ¥¤¥×¤ò»È¤¦¡£¤³¤ì¤Ï¥¢¥»¥ó¥Ö¥é¤¬¥Ñ¥¤¥×¤«¤é¤ÎÆÉ¤ß½Ð¤·¤¬¤Ç¤­¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ïưºî¤·¤Ê¤¤¡£¤â¤Á¤í¤ó¡¢GNU ¥¢¥»¥ó¥Ö¥é¤ò»È¤¨¤ÐÌäÂê¤Ê¤¤¡£
--help
gcc ¤¬Íý²ò¤¹¤ë¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤òɸ½à½ÐÎϤËɽ¼¨¤¹¤ë¡£¹ç¤ï¤»¤Æ -v ¥ª¥×¥·¥ç¥ó¤â»ØÄꤹ¤ë¤È¡¢--help ¤Ïgcc ¤¬µ¯Æ°¤¹¤ë¿§¡¹¤Ê¥×¥í¥»¥¹¤Ë¤âÅϤµ¤ì¤Î¤Ç¡¢ÅϤµ¤ì¤¿¥×¥í¥»¥¹¤Ï¼õÉÕ²Äǽ¤Ê¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤òɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£-W ¥ª¥×¥·¥ç¥ó¤ò°ì½ï¤Ë»ØÄꤹ¤ë¤È¡¢ÀâÌÀ¤¬ÍѰդµ¤ì¤Æ¤¤¤Ê¤¤¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤âɽ¼¨¤µ¤ì¤ë¡£


Node:Invoking G++, Next:, Previous:Overall Options, Up:Invoking GCC

C++ ¥×¥í¥°¥é¥à¤Î¥³¥ó¥Ñ¥¤¥ë

C++ ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë̾¤ÏÉáÄ̤ϥµ¥Õ¥£¥Ã¥¯¥¹¤¬¡¢.C¤«.cc¡¢.cpp¡¢.c++¡¢.cp¡¢.cxx ¤Î¤É¤ì¤«¤Ë¤Ê¤ë¡£¥×¥ê¥×¥í¥»¥¹ºÑ¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢.ii ¤È¤¤¤¦¥µ¥Õ¥£¥Ã¥¯¥¹¤Ë¤Ê¤ë¡£GCC ¤Ï¤³¤Î¤è¤¦¤Ê̾Á°¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤òǧ¼±¤·¡¢¥³¥ó¥Ñ¥¤¥é¤ò C ¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤ÈƱ¤¸ÊýË¡¤Çµ¯Æ°¤·¤Æ¤â(gcc ¤È¤¤¤¦Ì¾Á°¤ò»È¤Ã¤Æ¤â)¡¢C++ ¤Î¥×¥í¥°¥é¥à¤È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤Ê¤¦¡£

¤·¤«¤·¡¢C++ ¥×¥í¥°¥é¥à¤Ï C++ ¸À¸ì¤òÍý²ò¤¹¤ë¥³¥ó¥Ñ¥¤¥é¤À¤±¤Ç¤Ï¤Ê¤¯¡¢¥¯¥é¥¹¥é¥¤¥Ö¥é¥ê¤òɬÍפȤ¹¤ë¤³¤È¤¬Â¿¤¤¡£¤Þ¤¿¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢É¸½àÆþÎϤ«¤éÆÉ¤ß¹þ¤ó¤À¥×¥í¥°¥é¥à¤ä¡¢C++ ¥×¥í¥°¥é¥à¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¥µ¥Õ¥£¥Ã¥¯¥¹¤ò»ý¤¿¤Ê¤¤¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¥×¥í¥°¥é¥à¤ò¡¢C++ ¥×¥í¥°¥é¥à¤È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤¤¤³¤È¤â¤¢¤ë¤À¤í¤¦¡£¤½¤Î¤è¤¦¤Ê¾ì¹ç¸þ¤±¤Ë¡¢g++ ¤È¤¤¤¦¥×¥í¥°¥é¥à¤¬¤¢¤ê¡¢¥Ç¥Õ¥©¥ë¥È¤Î¸À¸ì¤ò C++ ¤ËÀßÄꤷ¤¿¤¦¤¨¤Ç GCC ¤ò¸Æ¤Ó½Ð¤·¡¢¤µ¤é¤ËC++ ¥é¥¤¥Ö¥é¥ê¤ò¼«Æ°Åª¤Ë¥ê¥ó¥¯¤¹¤ë¡£Â¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢g++ ¤È¤¤¤¦¥¹¥¯¥ê¥×¥È¤Ï¡¢c++ ¤È¤¤¤¦Ì¾Á°¤Ç¤â¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¡£(ÌõÃí: g++ ¤Ï¡¢¸½ºß¤Ï¥¹¥¯¥ê¥×¥È¤Ç¤Ï¤Ê¤¯¡¢¼Â¹Ô·Á¼°¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£)

C++ ¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ï¡¢Â¾¤ÎǤ°Õ¤Î¸À¸ì¤Î¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë»È¤¦¤Î¤ÈƱ¤¸¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Î¿¤¯¤¬»ÈÍѲÄǽ¤Ç¤¢¤ë¡£¤¢¤ë¤¤¤Ï¡¢C ¤È¤½¤ì¤Ë´Ø·¸¤¹¤ë¸À¸ì¤Ç°ÕÌ£¤Î¤¢¤ë¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£¤¢¤ë¤¤¤Ï¡¢C++ ¥×¥í¥°¥é¥à¤Î¤ß¤Ç°ÕÌ£¤ò»ý¤Ä¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£C ¤Ë´Ø·¸¤¹¤ë¸À¸ì¸þ¤±¤Î¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤Ï¡¢See Options Controlling C Dialect. C++ ¥×¥í¥°¥é¥à¤Ç¤Î¤ß°ÕÌ£¤ò»ý¤Ä¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤Ï¡¢See Options Controlling C++ Dialect.


Node:C Dialect Options, Next:, Previous:Invoking G++, Up:Invoking GCC

C Êý¸À¤ò°·¤¦¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬¼õ¤±ÉÕ¤±¤ë¡¢C(¤¢¤ë¤¤¤Ï¡¢C++ ¤äObjective C ¤Î¤è¤¦¤Ë C ¤«¤éƳ½Ð¤µ¤ì¤¿¸À¸ì)¤ÎÊý¸À¤òÀ©¸æ¤¹¤ë¡£

-ansi
ANSI µ¬³Ê¤Ë§¤Ã¤¿ C ¥×¥í¥°¥é¥à¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£

C ¥â¡¼¥É¤Ç¤Ï¡¢ANSI C µ¬³Ê¤Î C ¥×¥í¥°¥é¥à¤òÁ´¤Æ¥µ¥Ý¡¼¥È¤¹¤ë¡£C++ ¥â¡¼¥É¤Ç¤Ï ANSI C++ ¤Ë¹çÃפ·¤Ê¤¤ GNU ¤Î³ÈÄ¥µ¡Ç½¤òºï½ü¤¹¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ANSI C µ¬³Ê(C ¸À¸ì¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­)¡¢¤¢¤ë¤¤¤Ï ANSI C++ µ¬³Ê(C++ ¸À¸ì¤Î¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­) ¤È¸ß´¹À­¤Î¤Ê¤¤ GCC ¤Îµ¡Ç½¤ò¥ª¥Õ¤Ë¤¹¤ë¡£¥ª¥Õ¤Ë¤Ê¤ëµ¡Ç½¤Ï¡¢¥­¡¼¥ï¡¼¥É asm¡¢typeof¡¢¥·¥¹¥Æ¥à¤Î·Á¼°¤òÆÃÄꤹ¤ë unix ¤ä vax Åù¤ÎÄêµÁºÑ¥Þ¥¯¥íÅù¤¬¤¢¤ë¡£¤Þ¤¿¡¢¹¥¤Þ¤·¤¯¤Ê¤¤¡¢ÌÇ¿¤Ë»È¤ï¤ì¤ë¤³¤È¤Î¤Ê¤¤ ANSI ¤Î¥È¥ê¥°¥é¥Õ¤Îµ¡Ç½¤òÍ­¸ú¤Ë¤¹¤ë¡£C ¥³¥ó¥Ñ¥¤¥é¤Î¾ì¹ç¤Ï¡¢C++ ·Á¼°¤Î // ¤Ë¤è¤ë¥³¥á¥ó¥È¤ä¥­¡¼¥ï¡¼¥É inline ¤ò̵¸ú¤Ë¤¹¤ë¡£C++ ¥³¥ó¥Ñ¥¤¥é¤Î¾ì¹ç¤Ï¡¢-foperator-names ¤¬Í­¸ú¤Ë¤Ê¤ë¡£

-ansi ¤ò»ØÄꤷ¤Æ¤â¡¢Ê̤ηÁ¤Î¥­¡¼¥ï¡¼¥É __asm__¡¢__extension__¡¢__inline__¡¢__typeof__ ¤Ï»ÈÍѲÄǽ¤Ç¤¢¤ë¡£¤â¤Á¤í¤ó¡¢¤³¤¦¤¤¤Ã¤¿¥­¡¼¥ï¡¼¥É¤ò ANSI C ¥×¥í¥°¥é¥à¤Ç»È¤¦¤³¤È¤Ï¤Ê¤¤¤À¤í¤¦¤¬¡¢-ansi ¤Ä¤­¤Ç¹Ô¤Ê¤ï¤ì¤ë¥³¥ó¥Ñ¥¤¥ë¤ÎºÝ¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë²ÄǽÀ­¤Î¤¢¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç»È¤¦¤ÈÊØÍø¤Ç¤¢¤ë¡£Ê̤ηÁ¤ÎÄêµÁºÑ¥Þ¥¯¥í¡¢__unix__ ¤ä __vax__ ¤¬¡¢-ansi ¤Î̵ͭ¤Ë´Ø¤ï¤é¤º¡¢»ÈÍѲÄǽ¤Ç¤¢¤ë¡£

-ansi ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¤À¤±¤Ç¤Ï¡¢Èó ANSI ¥×¥í¥°¥é¥à¤ò¤¤¤ï¤ì¤Ê¤¯µñÀ䤹¤ë¤³¤È¤Ï¤Ê¤¤¡£µñÀ䤹¤ë¤Ë¤Ï¡¢-ansi ¤Ë²Ã¤¨¤Æ-pedantic ¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£See Warning Options.

-ansi ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢¥Þ¥¯¥í __STRICT_ANSI__ ¤¬ÄêµÁºÑ¤È¤Ê¤ë¡£¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë¤Ï¡¢¤³¤Î¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¡¢ANSI µ¬³Ê¤Ç¤Ï»ÈÍѤ·¤Ê¤¤´Ø¿ô¤ÎÀë¸À¤ä¥Þ¥¯¥í¤ÎÄêµÁ¤ò¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤â¤Î¤â¤¢¤ë¡£¤³¤ì¤Ï¡¢¤½¤Î¤è¤¦¤Ê´Ø¿ô¤ä¥Þ¥¯¥í¤Î̾Á°¤òÊ̤Τâ¤Î¤Ë»È¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¥×¥í¥°¥é¥à¤È¤Î´³¾Ä¤òÈò¤±¤ë¤¿¤á¤Ç¤¢¤ë¡£

´Ø¿ô alloca¡¢abort¡¢exit¡¢_exit ¤Ï-ansi ¤¬»ØÄꤵ¤ì¤ë¤ÈÁȤ߹þ¤ß´Ø¿ô¤Ç¤Ï¤Ê¤¯¤Ê¤ë¡£

-flang-isoc9x
C9X µ¬³Ê¤Ë¤¢¤ëµ¡Ç½¤Î¥µ¥Ý¡¼¥È¤òÍ­¸ú¤Ë¤¹¤ë¡£ÆÃ¤Ë¡¢C9X ¤Î¥­¡¼¥ï¡¼¥É restrict ¤Î¥µ¥Ý¡¼¥È¤òÍ­¸ú¤Ë¤¹¤ë¡£
-fstd=
¸À¸ìµ¬³Ê¤ò»ØÄꤹ¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤ÏÃͤò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£»ØÄê¤Ç¤­¤ëÃͤϰʲ¼¤ÎÄ̤ꡣ

¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤â¡¢°ÊÁ°¤Î C µ¬³Ê¤ÈÌ·½â¤·¤Ê¤¤¸Â¤ê¡¢¤è¤ê¿·¤·¤¤µ¬³Ê¤Î´ö¤Ä¤«¤Îµ¡Ç½¤ò»È¤¦¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢-fstd=c9x ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤â__restrict__ ¤ò»È¤Ã¤ÆÎɤ¤¡£

-fno-asm
asm¡¢inline¡¢typeof ¤ò¥­¡¼¥ï¡¼¥É¤È¤·¤ÆÇ§¼±¤·¤Ê¤¤¡£¤³¤ì¤é¤Î̾Á°¤Ï¼±Ê̻ҤȤ·¤Æ»ÈÍѲÄǽ¤Ë¤Ê¤ë¡£Âؤï¤ê¤Ë¡¢__asm__¡¢__inline__¡¢__typeof__ ¤¬¥­¡¼¥ï¡¼¥É¤È¤·¤Æ»È¤¨¤ë¡£-ansi ¤ò»ØÄꤹ¤ë¤È -fno-asm ¤âÍ­¸ú¤Ë¤Ê¤ë¡£

C++ ¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥­¡¼¥ï¡¼¥É typeof ¤Ë¤À¤±±Æ¶Á¤¬¤¢¤ë¡£C++ ¤Ç¤Ï¡¢asm ¤È inline ¤Ï¡¢µ¬³Ê¤Ë¤¢¤ë¥­¡¼¥ï¡¼¥É¤À¤«¤é¤Ç¤¢¤ë¡£¥­¡¼¥ï¡¼¥É typeof ¤òǧ¼±¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤ÏÂå¤ï¤ê¤Ë-fno-gnu-keywords ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¤âÎɤ¤¡£¤½¤Î¾ì¹ç¤Ï¡¢typeof ¤Î¾¤Ë¡¢headof ¤ÎÍÍ¤Ê C++ ¤Ë¸ÇÍ­¤Î³ÈÄ¥¥­¡¼¥ï¡¼¥É¤âǧ¼±¤·¤Ê¤¤¤è¤¦¤Ë¤Ê¤ë¡£

-fno-builtin
ÁȤ߹þ¤ß´Ø¿ô¤Î¤¦¤Á¡¢Ì¾Á°¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤¬ __builtin_ ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤òǧ¼±¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£¸½ºß¡¢±Æ¶Á¤ò¼õ¤±¤ë´Ø¿ô¤Ï¡¢abort¡¢abs¡¢alloca¡¢cos¡¢exit¡¢fabs¡¢ffs¡¢labs¡¢memcmp¡¢memcpy¡¢sin¡¢sqrt¡¢strcmp¡¢strcpy¡¢strlen ¤Ç¤¢¤ë¡£

GCC ¤Ï¡¢Ä̾¤¤¤¯¤Ä¤«¤ÎÁȤ߹þ¤ß´Ø¿ô¤ò¤è¤ê¸úΨÎɤ¯°·¤¦¤è¤¦¤ÊÆÃÊ̤ʥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£Î㤨¤Ð¡¢alloca ¤Î¸Æ¤Ó½Ð¤·¤Ï¥¹¥¿¥Ã¥¯¤òľÀÜÄ´À°¤¹¤ë°ì¸Ä¤ÎÌ¿Îá¤ÇÃÖ¤­´¹¤¨¤é¤ì¤¿¤ê¡¢memcpy ¤Î¸Æ¤Ó¤À¤·¤¬¥³¥Ô¡¼¤ò¹Ô¤Ê¤¦¥ë¡¼¥×¤Ë¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤ë¤³¤È¤â¤¢¤ë¡£À¸À®¤µ¤ì¤ë¥³¡¼¥É¤Ï¡¢¾®¤µ¤¯¹â®¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¤¬¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤Ï¤â¤Ï¤ä¸½¤ì¤Ê¤¤¤Î¤Ç¡¢¤³¤¦¤¤¤¦¸Æ¤Ó¤À¤·¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄê¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¤ê¡¢Ê̤Υ饤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤¹¤ë¤³¤È¤Ç¤½¤Î´Ø¿ô¤Îưºî¤òÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¤ê¤¹¤ë¡£

-ansi ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢alloca ¤È ffs ¤ÏÁȤ߹þ¤ß´Ø¿ô¤Ç¤Ï¤Ê¤¯¤Ê¤ë¡£¤³¤ì¤é¤Î´Ø¿ô¤Ï ANSI µ¬³Ê¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

-fhosted

¥Û¥¹¥È´Ä¶­¤Ç¥³¥ó¥Ñ¥¤¥ë¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤ë¤³¤È¤ò¥¢¥µ¡¼¥È¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢-fbuiltin ¤â°ÅÌۤ˻ØÄꤵ¤ì¤ë¡£¥Û¥¹¥È´Ä¶­¤È¤Ï¡¢¤½¤³¤ÇÁ´É¸½à¥é¥¤¥Ö¥é¥ê¤¬ÍøÍѲÄǽ¤Ç¤¢¤ê¡¢main ¤ÎÌá¤êÃÍ·¿¤¬ int ¤Ç¤¢¤ë¤è¤¦¤Ê´Ä¶­¤Ç¤¢¤ë¡£Îã¤È¤·¤Æ¤Ï¡¢OS ¤Î¥«¡¼¥Í¥ë°Ê³°¤Ï¤Û¤È¤ó¤É¤Ê¤ó¤Ç¤âÅö¤Æ¤Ï¤Þ¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢-fno-freestanding ¤ÈÅù²Á¤Ç¤¢¤ë¡£

-ffreestanding

¸ÉΩ¤·¤¿´Ä¶­¤Ç¥³¥ó¥Ñ¥¤¥ë¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤ë¤³¤È¤ò¥¢¥µ¡¼¥È¤¹¤ë¡£¸ÉΩ¤·¤¿´Ä¶­¤È¤Ï¡¢É¸½à¥é¥¤¥Ö¥é¥ê¤¬¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ê¡¢¥×¥í¥°¥é¥à¤Îµ¯Æ°¤¬É¬¤º¤·¤â main ¤«¤é»Ï¤Þ¤é¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë´Ä¶­¤Ç¤¢¤ë¡£ºÇ¤â¤ï¤«¤ê¤ä¤¹¤¤Îã¤Ï¡¢OS ¤Î¥«¡¼¥Í¥ë¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢-fno-hosted ¥ª¥×¥·¥ç¥ó¤ÈÅù²Á¤Ç¤¢¤ë¡£

-trigraphs
ANSI C ¤Î¥È¥ê¥°¥é¥Õµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£¥È¥ê¥°¥é¥Õ¤Ë¤Ä¤¤¤Æ¤ÏÌäÂ꤬¿¤¤µ¡Ç½¤Ê¤Î¤Ç¡¢¥æ¡¼¥¶¤Ï¾ÜºÙ¤òÃΤëɬÍפϤʤ¤¤È»×¤¦¡£-ansi ¤ò»ØÄꤹ¤ë¤È¡¢-trigraphs ¤¬Í­¸ú¤Ë¤Ê¤ë¡£
-traditional
µìÍè¤Î C ¤Î¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤ò¤¤¤¯¤Ä¤«¥µ¥Ý¡¼¥È¤¹¤ë¡£ÆÃ¤Ë°Ê²¼¤Îµ¡Ç½¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£

¼«Ê¬¤Î¥×¥í¥°¥é¥à¤Ç¡¢Ä̾ï¤Ï GNU C ¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ç¤¢¤ë̾Á°¤ò¤½¤Î¥×¥í¥°¥é¥à¸ÇÍ­¤ÎÊ̤ÎÌÜŪ¤Ç»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢-traditional ¤Î¾¤Ë -fno-builtin ¤ò»È¤¦É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£

ANSI C ¤Îµ¡Ç½¤ò»È¤Ã¤Æ¤¤¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¾ì¹ç¤Ï¡¢-traditional ¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤¤¤¯¤Ä¤«¤Î¥Ù¥ó¥À¤Ï¡¢ANSI C ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òÆþ¤ì¤¿¥·¥¹¥Æ¥à¤ò½Ð²Ù¤·»Ï¤á¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤¦¤¤¤¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¤Î¥Ø¥Ã¥À¤ò°ì¤Ä¤Ç¤â¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë¤Ï¡¢-traditional ¤Ï»È¤¨¤Ê¤¤¤Î¤Ç¤¢¤ë¡£

-traditional ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È -traditional-cpp ¤âÍ­¸ú¤Ë¤Ê¤ë¡£¤³¤ì¤Ë¤Ä¤¤¤Æ¤Ï¼¡¤ÇÀâÌÀ¤¹¤ë¡£

-traditional-cpp
µìÍè¤Î C ¥×¥ê¥×¥í¥»¥Ã¥µ¤Îµ¡Ç½¤Î¤¤¤¯¤Ä¤«¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£ÆÃ¤Ë°Ê²¼¤Îµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£
-fcond-mismatch
3¹à±é»»»Ò¼°¤Ç¡¢ÆóÈÖÌܤȻ°ÈÖÌܤΰú¿ô¤Î·¿¤¬°ã¤Ã¤Æ¤âµö¤¹¡£¤½¤¦¤¤¤¦¼°¤ÎÃÍ¤Ï void ¤Ç¤¢¤ë¡£
-funsigned-char
char ·¿¤ò¡¢unsigned char ¤Î¤è¤¦¤ËÉ乿¤Ê¤·¤È¤¹¤ë¡£

³Æµ¡¼ï¤Ë¤è¤ê¡¢char ¤Î¥Ç¥Õ¥©¥ë¥È¤¬¤É¤¦¤¢¤ë¤Ù¤­¤«¤¬·è¤Þ¤Ã¤Æ¤¤¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢unsigned char ¤Î¤è¤¦¤Ë¤Ê¤ë¤«¡¢signed char ¤Î¤è¤¦¤Ë¤Ê¤ë¤«¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¡£

ÍýÁÛŪ¤Ë¤Ï¡¢°Ü¿¢À­¤ÎÎɤ¤¥×¥í¥°¥é¥à¤Ë¤¹¤ë¤Ê¤é¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ÎÉ乿¤Î°ÕÌ£¤Ë¤è¤Ã¤Æ¡¢É¬¤º signed char ¤« unsigned char ¤Î¤É¤Á¤é¤«¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£¤À¤¬¡¢¤¿¤¯¤µ¤ó¤Î¥×¥í¥°¥é¥à¤¬Ã±¤Ê¤ë char ·¿¤ò»È¤Ã¤Æ½ñ¤«¤ì¤Æ¤ª¤ê¡¢¤½¤ì¤¬½ñ¤«¤ì¤¿¥Þ¥·¥ó¤Ë°Í¸¤·¤Æ¡¢É乿ÉÕ¤­¤«¡¢É乿¤Ê¤·¤«¤Ç¤¢¤ë¤«¤òÁÛÄꤷ¤Æ¤¤¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤È¡¢¤³¤ì¤ÎµÕ¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¢¥Ç¥Õ¥©¥ë¥È¤¬È¿ÂФˤʤäƤ¤¤ë¥Þ¥·¥ó¤Ç¥×¥í¥°¥é¥à¤òưºî¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

char ·¿¤Ï¾ï¤Ë signed char ¤È¤â unsigned char ¤È¤â°Û¤Ê¤ë·¿¤Ç¤¢¤ë¡£¤¿¤È¤¨¡¢Æ°ºî¤¬É¬¤º¤É¤Á¤é¤«°ìÊý¤ÈƱ¤¸¤Ç¤¢¤Ã¤Æ¤â¡£

-fsigned-char
char ·¿¤ò¡¢signed char ¤Î¤è¤¦¤ËÉ乿¤Ä¤­¤È¤¹¤ë¡£

¤³¤ì¤Ï¡¢-fno-unsigned-char ¤ÈƱ¤¸¤Ç¤¢¤ê¡¢-funsigned-char ¤ÎÈÝÄê·Á¤Ç¤¢¤ë¡£Æ±Íͤˡ¢-fno-signed-char ¤Ï -funsigned-char ¤ÈƱ¤¸¤Ç¤¢¤ë¡£

-fsigned-bitfields
-funsigned-bitfields
-fno-signed-bitfields
-fno-unsigned-bitfields
¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ÎÀë¸À¤Ë signed ¤â unsigned ¤â»È¤Ã¤Æ¤¤¤Ê¤¤¤È¤­¤Ë¡¢¤½¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤¬É乿ÉÕ¤­¤È¤Ê¤ë¤«É乿¤Ê¤·¤È¤Ê¤ë¤«¤òÀ©¸æ¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤½¤Î¤è¤¦¤Ê¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ÏÉ乿ÉÕ¤­¤Ç¤¢¤ë¡£²¿¸Î¤Ê¤é¡¢¤½¤¦¤¹¤ë¤È¼óÈø°ì´Ó¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£int ¤Î¤è¤¦¤Ê´ðËÜÀ°¿ô·¿¤ÏÉ乿ÉÕ¤­¤Î·¿¤Ç¤¢¤ë¡£

¤À¤¬¡¢-traditional ¤ò»ØÄꤹ¤ë¤È¡¢¥Ó¥Ã¥È¡¼¥Õ¥£¡¼¥ë¥É¤Ï²¿¤¬¤¢¤í¤¦¤ÈÁ´¤ÆÉ乿¤Ê¤·¤Ë¤Ê¤ë¡£

-fwritable-strings
ʸ»úÎóÄê¿ô¤ò½ñ¤­¹þ¤ß²Äǽ¤Ê¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Ë³ÊǼ¤·¡¢°ì°Õ²½¤·¤Ê¤¤¡£¤³¤ì¤Ï¡¢Ê¸»úÎóÄê¿ô¤Ë½ñ¤­¹þ¤ß¤¬²Äǽ¤Ç¤¢¤ë¤È²¾Äꤷ¤Æ¤¤¤ë¸Å¤¤¥×¥í¥°¥é¥à¤È¤Î¸ß´¹À­¤ò¼è¤ë¤¿¤á¤Ë¤¢¤ë¡£-traditional ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤â¤³¤Îµ¡Ç½¤¬Í­¸ú¤Ë¤Ê¤ë¡£

ʸ»úÎóÄê¿ô¤Ë½ñ¤­¹þ¤â¤¦¤È¤¹¤ë¤Î¤ÏÁ´¤¯¤Î´Ö°ã¤¤¤Ç¤¢¤ë¡£¡ÖÄê¿ô¡×¤ÏÄê¿ô¤Ç¤¢¤ë¤Ù¤­¤Ê¤Î¤À¡£

-fallow-single-precision
-traditional ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ç¤â¡¢Ã±ÀºÅ٤οô³Ø±é»»¤òÇÜÀºÅ٤˳ʾ夲¤·¤Ê¤¤

K&R C ¤Ç¤Ï¡¢¥ª¥Ú¥é¥ó¥É¤Î¥µ¥¤¥º¤Ë´Ø¤ï¤é¤º¤Ë¡¢Á´¤Æ¤ÎÉâÆ°¾®¿ôÅÀ±é»»¤òÇÜÀºÅ٤˳ʾ夲¤¹¤ë¡£¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤Ã¤Æ¤Ï¡¢Ã±ÀºÅÙ¤ÎÊý¤¬ÇÜÀºÅÙ¤è¤ê®¤¤¤³¤È¤¬¤¢¤ë¡£-traditional ¥ª¥×¥·¥ç¥ó¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¤Ç¡¢¤«¤Ä¡¢¥ª¥Ú¥é¥ó¥É¤¬Ã±ÀºÅ٤ξì¹ç¤Ë¤ÏñÀºÅ٤α黻¤ò»ÈÍѤ·¤¿¤±¤ì¤Ð¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï ANSI ¤Þ¤¿¤Ï GNU C ¤Îµ¬Ìó(¥Ç¥Õ¥©¥ë¥È)¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢Æ°ºî¤Ë±Æ¶Á¤Ï¤Ê¤¤¡£


Node:C++ Dialect Options, Next:, Previous:C Dialect Options, Up:Invoking GCC

C++ Êý¸À¤ò°·¤¦¥ª¥×¥·¥ç¥ó

¤³¤ÎÀá¤Ç¤Ï¡¢C++ ¥×¥í¥°¥é¥à¤Î¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤Î¤¢¤ë¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤òÀâÌÀ¤¹¤ë¡£¤À¤¬¡¢GNU ¥³¥ó¥Ñ¥¤¥é¤Î¥ª¥×¥·¥ç¥ó¤ÎÂçÉôʬ¤Ï¡¢¥×¥í¥°¥é¥à¤Î¸À¸ì¤¬²¿¤Ç¤¢¤ë¤«¤Ë´Ø¤ï¤é¤º»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£Î㤨¤Ð¡¢firstClass.C ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò°Ê²¼¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë½ÐÍè¤ë¡£

g++ -g -frepo -O -c firstClass.C

¤³¤ÎÎã¤Ç¤Ï¡¢-frepo ¤À¤±¤¬¡¢C++ ¥×¥í¥°¥é¥à¤Î¾ì¹ç¤Ë¤À¤±°ÕÌ£¤ò»ý¤Ä¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£Â¾¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢GCC ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤É¤Î¸À¸ì¤Ç¤â»ÈÍѤǤ­¤ë¡£

°Ê²¼¤Î¥ê¥¹¥È¤Ï¡¢C++ ¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤Î¤¢¤ë¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£

-fno-access-control
Á´¤Æ¤Î¥¢¥¯¥»¥¹¸¡ºº¤ò¹Ô¤Ê¤ï¤Ê¤¤¡£¤³¤ì¤Ï¡¢¼ç¤Ë¥¢¥¯¥»¥¹À©¸æ¥³¡¼¥É¤Î¥Ð¥°¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¤¢¤ë¡£
-fcheck-new
operatr new ¤Ë¤è¤êÊÖ¤µ¤ì¤ë¥Ý¥¤¥ó¥¿¤¬¥Ì¥ë¤Ç¤Ê¤¤¤³¤È¤ò¡¢³ÎÊݤ·¤¿Îΰè¤òÊѹ¹¤¹¤ëÁ°¤Ë¡¢¸¡ºº¤¹¤ë¡£ºÇ¿·¤Î ANSI C++ ¤Î "Working Paper" ¤Ç¤Ï¡¢operator new ¤Ï·è¤·¤Æ¥Ì¥ë¥Ý¥¤¥ó¥¿¤òÊÖ¤µ¤Ê¤¤¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤Î¸¡ºº¤ÏÉáÄ̤ÏɬÍפǤʤ¤¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÂå¤ï¤ê¤È¤Ê¤ëÊýË¡¤È¤·¤Æ¤Ï¡¢¼«ºî¤Î operator new ¤¬¤Ê¤ó¤éÎã³°¤òÅꤲ¤Ê¤¤¤È»ØÄꤹ¤ëÊýË¡¤¬¤¢¤ë¡£throw() ¤ÈÀë¸À¤¹¤ë¤È¡¢g++ ¤ÏÌá¤êÃͤò¸¡ºº¤¹¤ë¡£new (nothrow) ¤â»²¾È¤Î¤³¤È¡£

-fconserve-space
Èó½é´ü²½¡¢¤¢¤ë¤¤¤Ï¼Â¹Ô»þ½é´ü²½¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤ò C ¤Î¾ì¹ç¤Î¤è¤¦¤Ë¡¢¥³¥â¥ó¥»¥°¥á¥ó¥È¤ËÃÖ¤¯¡£¤³¤ì¤Ï¡¢Æó½ÅÄêµÁ¤ò¸¡ºº¤·¤Ê¤¤¤È¤¤¤¦¥³¥¹¥È¤òʧ¤Ã¤¿¤¦¤¨¤Ç¡¢¼Â¹Ô·Á¼°Ãæ¤Î¥¹¥Ú¡¼¥¹¤òÀáÌ󤹤롣¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥×¥í¥°¥é¥à¤¬¡¢main() ¤Î½ªÎ»¸å¤Ë¡¢ÉԲIJò¤Ë¤â°Û¾ï½ªÎ»¤·¤¿¤Ê¤é¡¢Æó¤Ä¤ÎÄêµÁ¤¬¥Þ¡¼¥¸¤µ¤ì¤¿¤¿¤á¤ËÆó²óÇ˲õ¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤¬Â¸ºß¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤â¤Ï¤ä¤Û¤È¤ó¤É¤Î¥¿¡¼¥²¥Ã¥È¤Ç°ÕµÁ¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤ë¡£ÊÑ¿ô¤ò¡¢¥³¥â¥ó¤Ë¤¹¤ë¤³¤È¤Ê¤¯ BSS ¤ËÃÖ¤¯ÊýË¡¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£

-fdollars-in-identifiers
¼±ÊÌ»ÒÃæ¤Ë $ ¤ò»È¤¦¤³¤È¤òµö¤¹¡£-fno-dollars-in-identifiers ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢$ ¤òÌÀ¼¨Åª¤Ë»ÈÍѶػߤˤ¹¤ë¤³¤È¤â²Äǽ¤Ç¤¢¤ë¡£(GNU C ¤Ï¡¢¤Û¤È¤ó¤É¤Î¥¿¡¼¥²¥Ã¥È¤Ç¥Ç¥Õ¥©¥ë¥È¤Ç $ ¤òµö¤¹¤¬¡¢2,3 ¤ÎÎã³°¤¬¤¢¤ë¡£) µìÍè¤Î C ¤Ï¡¢¼±Ê̻ҤΰìÉô¤Ë $ ¤ò»È¤¦¤³¤È¤òµö¤·¤Æ¤¤¤ë¡£¤·¤«¤·¡¢ANSI C ¤È C++ ¤Ï¡¢¼±ÊÌ»ÒÃæ¤Î $ ¤ò¶Ø»ß¤·¤Æ¤¤¤ë¡£
-fno-elide-constructors
C++ µ¬³Ê¤Ï¡¢Æ±¤¸·¿¤ÎÊ̤Υª¥Ö¥¸¥§¥¯¥È¤ò½é´ü²½¤¹¤ë¤Î¤Ë¤·¤«»È¤ï¤ì¤Ê¤¤°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤òºî¤ë¤Î¤ò¾Êά¤¹¤ë¼ÂÁõ¤òµö¤·¤Æ¤¤¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢¤½¤ÎºÇŬ²½¤ò̵¸ú¤Ë¤·¡¢g++ ¤¬Á´¤Æ¤Î¾ì¹ç¤Ë¥³¥Ô¡¼¡¦¥³¥ó¥¹¥È¥é¥¯¥¿¤ò¸Æ¤Ö¤è¤¦¤Ë¤¹¤ë¡£
-fexternal-templates
¥Æ¥ó¥×¥ì¡¼¥È¤Î¼ÂÂ⽤ò #pragma interface ¤È implementation ¤Ë½¾¤ï¤»¤ë¡£¥Æ¥ó¥×¥ì¡¼¥È¤Î¼ÂÂΤ¬À¸À®¤µ¤ì¤ë¤«¡¢¥Æ¥ó¥×¥ì¡¼¥ÈÄêµÁ¤Î°ÌÃ֤ˤϽ¾¤ï¤Ê¤¤¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï See Template Instantiation¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÇÑ»ßÍ׵᤬½Ð¤Æ¤¤¤ë¡£

-falt-external-templates
-fexternal-templates ¤ÈƱÍͤÀ¤¬¡¢¥Æ¥ó¥×¥ì¡¼¥È¤Î¼ÂÂΤÏÀ¸À®¤µ¤ì¤ë¤«¡¢ºÇ½é¤Ë¼ÂÂ⽤µ¤ì¤¿¾ì½ê¤Ë¤Ï½¾¤ï¤Ê¤¤¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï See Template Instantiation¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÇÑ»ßÍ׵᤬½Ð¤Æ¤¤¤ë¡£

-ffor-scope
-fno-for-scope
-ffor-scope ¤¬»ØÄꤵ¤ì¤ë¤È¡¢for ʸ¤Î½é´ü²½Ê¸¤ÇÀë¸À¤µ¤ì¤¿ÊÑ¿ô¤ÎÍ­¸úÈϰϤϡ¢¤½¤Î for ¥ë¡¼¥×¼«ÂΤ˸¤é¤ì¤ë¡£¤³¤ì¤Ï¡¢C++ µ¬³Ê¤Î¥É¥é¥Õ¥È¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ëưºî¤Ç¤¢¤ë¡£-fno-for-scope ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢for ʸ¤Î½é´ü²½Ê¸¤ÇÀë¸À¤µ¤ì¤¿ÊÑ¿ô¤ÎÍ­¸úÈϰϤϡ¢for ʸ¤ò°Ï¤àÍ­¸úÈϰϤκǸå¤Þ¤Ç¤È¤Ê¤ë¡£¤³¤ì¤Ï¡¢gcc ¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤ä¡¢Â¾¤Î(¸Å¤¤) C++ ¤Î¼ÂÁõ¤Ç¤Îưºî¤Ç¤¢¤ë¡£

¤É¤Á¤é¤Î¥ª¥×¥·¥ç¥ó¤â»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ïµ¬³Ê¤Ë½¾¤¦¤¬¡¢Ìµ¸ú¤Ç¤¢¤Ã¤¿¤ê¡¢°Û¤Ê¤ëưºî¤Ë¤Ê¤é¤Ê¤¤¸Â¤ê¡¢¸Å¤¤·Á¼°¤Î¥³¡¼¥É¤â·Ù¹ð¤¬¤Ç¤ë¤¬µö¤µ¤ì¤ë¡£

-fno-gnu-keywords
classof¡¢headof¡¢signature¡¢sigof¡¢typeof ¤ò¥­¡¼¥ï¡¼¥É¤È¤·¤ÆÇ§¼±¤»¤º¡¢¼±Ê̻ҤȤ·¤Æ»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¡£¤½¤Î¾ì¹ç¡¢Âå¤ï¤ê¤Ë__classof__¡¢__headof__¡¢__signature__¡¢__sigof__¡¢__typeof__ ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£-ansi ¤Ï -fno-gnu-keywords ¤ò´Þ¤à¡£
-fguiding-decls
ÀøºßŪ¤Ê´Ø¿ô¥Æ¥ó¥×¥ì¡¼¥È¤Î¼ÂÂ⽤ÈƱ¤¸·¿¤ò»ý¤Ä´Ø¿ô¤ÎÀë¸À¤¬¤¢¤Ã¤¿¤È¤­¡¢¤½¤ì¤òÉáÄ̤δؿô¤È¤·¤Æ¤Ç¤Ï¤Ê¤¯¡¢¤¢¤¿¤«¤â¼ÂÂ⽤òÀë¸À¤·¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë°·¤¦¡£¤½¤Î´Ø¿ô¤ÎÄêµÁ¤¬¡¢Æ±¤¸ËÝÌõñ°Ì¤Î¸å¤í¤ÇÍ¿¤¨¤é¤ì¤Æ¤¤¤ì¤Ð(¤¢¤ë¤¤¤Ï¡¢¥¿¡¼¥²¥Ã¥È¤Ë¥¦¥£¡¼¥¯¥·¥ó¥Ü¥ë¤¬¤¢¤ì¤Ð¡¢Ê̤ÎËÝÌõñ°Ì¤Ç¤âÎɤ¤)¡¢¤½¤ÎÄêµÁ¤¬»È¤ï¤ì¤ë¡£ÄêµÁ¤¬¤±¤ì¤Ð¡¢¤½¤Î¥Æ¥ó¥×¥ì¡¼¥È¤Ï¼ÂÂ⽤µ¤ì¤ë¡£¤³¤Îưºî¤Ï¡¢1996ǯ9·î°ÊÁ°¤Î C++ ¸À¸ì»ÅÍͤòÈ¿±Ç¤·¤¿¤â¤Î¤Ç¤¢¤ê¡¢¤³¤Î¸å¡¢°ÆÆâÀë¸À(guiding declaration)¤¬»ÅÍͤ«¤éºï½ü¤µ¤ì¤¿¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢-fname-mangling-version-0 ¤â»ØÄꤷ¤¿¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¡¢¤³¤ì°Ê³°¤Î̾Á°¤Î¥¨¥ó¥³¡¼¥ÉÈÇ(name mangling version) ¤È°ì½ï¤Ë¤Ï»È¤¨¤Ê¤¤¡£ABI ¤òÊѹ¹¤¹¤ëÁ´¤Æ¤Î¥ª¥×¥·¥ç¥óƱÍÍ¡¢libgcc.a ¤ò´Þ¤àÁ´¤Æ¤Î C++ ¥³¡¼¥É¤ò¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤òƱ°ì¤Ë¤·¤Æ¹½ÃÛ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

-fhandle-signatures
Ãê¾Ý·¿¤ò»ØÄꤹ¤ë¥­¡¼¥ï¡¼¥É¡¢ signature ¤È sigof ¤òǧ¼±¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È(-fno-handle-signatures) ¤Ç¤Ïǧ¼±¤·¤Ê¤¤¡£
-fhonor-std
namespace std ¤ò¥Í¡¼¥à¥¹¥Ú¡¼¥¹¤È¤·¤Æ¡¢Ìµ»ë¤»¤º¤Ë¼è¤ê°·¤¦¡£g++ ¤ÎÀΤΥС¼¥¸¥ç¥ó¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë¡¢GCC ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï namespace-declarations¡¢using-declarations¡¢using-declarations¡¢using-directives¡¢namespace-names ¤¬¡¢std ¤ò´Þ¤ó¤Ç¤¤¤ì¤Ð¡¢¤½¤ì¤ò̵»ë¤¹¤ë¡£
-fhuge-objects
short int ¤Çɽ¸½²Äǽ¤ÊÂ礭¤µ¤ò±Û¤¨¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ä¤¤¤Æ²¾ÁÛ´Ø¿ô¸Æ¤Ó½Ð¤·¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£¥æ¡¼¥¶¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤Ù¤­¤Ç¤Ê¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢¤ë¤È¤­¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬ÃΤ餻¤Æ¤¯¤ì¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢-fvtable-thunks ¤ò»È¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ë¤ÏÌò¤ËΩ¤¿¤Ê¤¤¡£

ABI ¤òÊѹ¹¤¹¤ëÁ´¤Æ¤Î¥ª¥×¥·¥ç¥óƱÍÍ¡¢libgcc ¤ò´Þ¤àÁ´¤Æ¤Î C++ ¥³¡¼¥É¤ò¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤òƱ°ì¤Ë¤·¤Æ¹½ÃÛ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

-fno-implicit-templates
°ÅÌÛ¤Ë(¤¹¤Ê¤ï¤Á¡¢»È¤¦¤³¤È¤Ë¤è¤ê)¼ÂÂ⽤µ¤ì¤ëÈ󥤥ó¥é¥¤¥ó¤Î¥Æ¥ó¥×¥ì¡¼¥ÈÍѤΥ³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤¡£ÌÀ¼¨Åª¤Ê¼ÂÂ⽤ËÂФ·¤Æ¤Î¤ß¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤è¤ê¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢See Template Instantiation¡£
-fno-implicit-inline-templates
¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤Î°ÅÌۤμÂÂβ½¤Ë¤Ä¤¤¤Æ¤Î¥³¡¼¥É¤âÀ¸À®¤·¤Ê¤¤¡£¥Ç¥Õ¥©¥ë¥È¤Ï¥¤¥ó¥é¥¤¥ó¤ò°ã¤Ã¤¿¤ä¤êÊý¤Ç¼è°·¤¦¤Î¤Ç¡¢ºÇŬ²½¤¢¤ê¤Ç¤â¤Ê¤·¤Ç¤â¡¢¥³¥ó¥Ñ¥¤¥é¤ÏÌÀ¼¨Åª¤Ê¼ÂÂ⽤ÎƱ¤¸¥»¥Ã¥È¤¬É¬Íפˤʤ롣
-finit-priority
__attribute__ ((init_priority (n))) ¤ò¥µ¥Ý¡¼¥È¤·¡¢¥Õ¥¡¥¤¥ë¥¹¥³¡¼¥×¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î½é´ü²½½ç½ø¤òÀ©¸æ¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£ELF ¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¡¢¤³¤Î¤¿¤á¤Ë¤Ï GNU ld 2.10 °Ê¹ß¤¬É¬ÍפǤ¢¤ë¡£
-fno-implement-inlines
¥¹¥Ú¡¼¥¹¤ÎÀáÌó¤Î¤¿¤á¤Ë¡¢#pragma implementation ¤Ë¤è¤êÀ©¸æ¤µ¤ì¤ë¥¤¥ó¥é¥¤¥óŸ³«´Ø¿ô¤ÎŸ³«¥³¡¼¥É¤Î¥³¥Ô¡¼¤òÀ¸À®¤·¤Ê¤¤¡£¤³¤¦¤¹¤ë¤È¡¢¥¤¥ó¥é¥¤¥óŸ³«´Ø¿ô¤¬¡¢¤É¤Î¸Æ¤Ó½Ð¤·¸Ä½ê¤Ç¤â¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤Ê¤¤¤È¡¢¥ê¥ó¥¯»þ¤Î¥¨¥é¡¼¤Ë¤Ê¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢C++ ¥ê¥ó¥±¡¼¥¸¤ÎÀë¸À¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤¡£

-fname-mangling-version-n
̾Á°¤Î¥Þ¥ó¥°¥ëÊýË¡¤òÀ©¸æ¤¹¤ë¡£¥Ð¡¼¥¸¥ç¥ó 0 ¤Ï¡¢2.8 °ÊÁ°¤Î g++ ¤Î¥Ð¡¼¥¸¥ç¥ó¤È¸ß´¹¤Ç¤¢¤ë¡£¥Ð¡¼¥¸¥ç¥ó1¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£¥Ð¡¼¥¸¥ç¥ó1 ¤Ï¡¢´Ø¿ô¥Æ¥ó¥×¥ì¡¼¥È¤ÎÀµ¤·¤¤¥Þ¥ó¥°¥ë¤¬²Äǽ¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢¥Ð¡¼¥¸¥ç¥ó 0 ¤Î¥Þ¥ó¥°¥ë¤Ç¤Ï¡¢foo<int, double> ¤ò¥Þ¥ó¥°¥ë¤»¤º¡¢foo<int, char> ¤Ï°Ê²¼¤ÎÀë¸À¤Ë¤Ê¤ë¡£
template <class T, class U> void foo(T t);

ABI ¤òÊѹ¹¤¹¤ëÁ´¤Æ¤Î¥ª¥×¥·¥ç¥óƱÍÍ¡¢libgcc ¤ò´Þ¤àÁ´¤Æ¤Î C++ ¥³¡¼¥É¤ò¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤òƱ°ì¤Ë¤·¤Æ¹½ÃÛ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

-foperator-names
±é»»»Ò̾¥­¡¼¥ï¡¼¥É¡¢and¡¢bitand¡¢bitor¡¢compl¡¢not¡¢or¡¢xor ¤ò¤½¤ì¤é¤¬»²¾È¤¹¤ëµ­¹æ¤ÎÊÌ̾¤È¤·¤ÆÇ§¼±¤¹¤ë¡£-ansi ¤Ë¤Ï -foperator-names ¤¬´Þ¤Þ¤ì¤ë¡£
-fno-optional-diags
µ¬³Ê¤¬¥³¥ó¥Ñ¥¤¥é¤¬È¯¹Ô¤¹¤ëɬÍפϤʤ¤¤Èµ¬Äꤷ¤Æ¤¤¤ë¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ò½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£¸½ºß¡¢g++ ¤¬È¯¹Ô¤¹¤ë¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤Ç³ºÅö¤¹¤ë¤Î¤Ï¡¢¤¢¤ë̾Á°¤¬¤¢¤ë¥¯¥é¥¹Æâ¤ÇÊ£¿ô¤Î°ÕÌ£¤ò»ý¤Ã¤Æ¤¤¤ë¤È¤¤¤¦¤â¤Î¤ËÂФ¹¤ë¤â¤Î¤Ç¤¢¤ë¡£
-fpermissive
µ¬³Ê¤Ë½àµò¤·¤Æ¤¤¤Ê¤¤¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤ò¥¨¥é¡¼¤«¤é·Ù¹ð¤Ë³Ê²¼¤²¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢g++ ¤Ï -pedantic ¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï¼Â¼ÁŪ¤Ë -pedantic-errors ¤ò»ØÄꤷ¤Æ¤¤¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤½¤ì¤òµÕ¤Ë¤¹¤ë¡£¤³¤Îưºî¤È¥ª¥×¥·¥ç¥ó¤Ï¡¢-pedantic ¤Ë¤è¤êÂǤÁ¾Ã¤µ¤ì¤ë¡£-pedatnic ¤Ï GNU C ¤Î¾ì¹ç¤ÈƱÍÍ¤ÎÆ°ºî¤Ë¤Ê¤ë¡£
-frepo
¼«Æ°Åª¤Ê¥Æ¥ó¥×¥ì¡¼¥È¤Î¼ÂÂ⽤òÍ­¸ú¤Ë¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢°ÅÌÛ¤Ë -fno-implicit-templates ¤âÀßÄꤹ¤ë¡£¤â¤Ã¤È¾Ü¤·¤¤¤³¤È¤Ë¤Ä¤¤¤Æ¤Ï¡¢ See Template Instantiation¡£
-fno-rtti
C++ ¤Î¼Â¹Ô»þ·¿¼±Ê̵¡Ç½(dynamic_cast ¤È typeid)¤Ç»È¤ï¤ì¤ë¾ðÊó¤òÀ¸À®¤·¤Ê¤¤¡£C++ ¸À¸ì¤Î¤³¤ì¤é¤Îµ¡Ç½(¤¢¤ë¤¤¤Ï¡¢dynamic_cast ¤òÆâÉôŪ¤Ë»È¤Ã¤Æ¤¤¤ëÎã³°½èÍý)¤ò»È¤ï¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤Ç¥¹¥Ú¡¼¥¹¤ò¤¤¤¯¤é¤«ÀáÌó¤Ç¤­¤ë¡£
-fstrict-prototype
¥ê¥ó¥±¡¼¥¸»ØÄê extern "C" ¤ÎÃæ¤Ç¡¢°ú¿ô¤Ê¤·¤Î´Ø¿ôÀë¸À¡¢Î㤨¤Ð int foo (); ¤ò¡¢°ú¿ô¤ò¼è¤é¤Ê¤¤´Ø¿ô¤ÎÀë¸À¤È¤·¤Æ°·¤¦¡£ÉáÄÌ C ¤Ç¤Ï¡¢¤½¤Î¤è¤¦¤ÊÀë¸À¤Ï´Ø¿ô foo ¤Ï¤É¤ó¤Ê°ú¿ô¤ÎÁȹ礻¤Ç¤â¼è¤ë¤³¤È¤¬¤Ç¤­¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£-pedantic ¤Ï¡¢-fno-strict-prototype ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢-fstrict-prototype ¤âÍ­¸ú¤Ë¤¹¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢°ÅÌۤδؿôÀë¸À¤âÍÞÀ©¤¹¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢C++ ¥ê¥ó¥±¡¼¥¸¤ò»ý¤ÄÀë¸À¤Ë¤Ï¡¢¤â¤Ï¤ä±Æ¶Á¤·¤Ê¤¤¡£

-fsquangle
-fno-squangle
-fsquangle ¤ò»ØÄꤹ¤ë¤È¡¢¼±Ê̻ҤÎ̾Á°¤Î¥Þ¥ó¥°¥ê¥ó¥°¤Î°µ½Ì·Á¤òÍ­¸ú¤Ë¤¹¤ë¡£¤³¤ì¤Ï¡¢ÆÃ¤Ë¡¢Ê£¿ô²ó¸½¤ì¤ë·¿Ì¾¤È¥¯¥é¥¹Ì¾¤òǧ¼±¤·¡¢ÆÃÊ̤Ëû¤¤ ID ¥³¡¼¥É¤ÇÃÖ¤­´¹¤¨¤ë¤³¤È¤Ç¡¢Èó¾ï¤ËŤ¤Ì¾Á°¤òû¤¯¤¹¤ë¤Î¤ò½õ¤±¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤Ê¤é¡¢°ì½ï¤Ë»È¤¦¤É¤Î C++ ¥é¥¤¥Ö¥é¥ê¤âƱÍͤˤ³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë(-fno-squangle ¤ò»ØÄꤷ¤¿¤Î¤ÈƱ¤¸)¡£

ABI ¤òÊѹ¹¤¹¤ë¤è¤¦¤ÊÁ´¤Æ¤Î¥ª¥×¥·¥ç¥óƱÍÍ¡¢libgcc.a ¤ò´Þ¤à Á´¤Æ¤Î C++ ¥³¡¼¥É¤ò¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤ÆÆ±¤¸ÀßÄê¤Ç¹½ÃÛ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

-ftemplate-depth-n
¥Æ¥ó¥×¥ì¡¼¥È¥¯¥é¥¹¤Î¼ÂÂβ½¤ÎºÇÂç¤Î¿¼¤µ¤ò n ¤Ë¤¹¤ë¡£¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂβ½¤Î¿¼¤µ¤Ï¡¢¥Æ¥ó¥×¥ì¡¼¥È¥¯¥é¥¹¼ÂÂβ½¤ÎºÝ¤Ë̵¸Â¤ËºÆµ¢¤¬µ¯¤³¤ë¤Î¤ò¸¡½Ð¤¹¤ë¤Î¤ËɬÍפǤ¢¤ë¡£ANSI/ISO C++ ¤ËŬ¹ç¤¹¤ë¥×¥í¥°¥é¥à¤Ï¡¢17 ¤è¤êÂ礭¤¤ºÇÂç¤Î¿¼¤µ¤ËÍê¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
-fthis-is-variable
this ¤Ø¤ÎÂåÆþ¤òµö¤¹¡£¥æ¡¼¥¶ÄêµÁ¤Î¥Õ¥ê¡¼¥¹¥È¥¢´ÉÍý¤ò C++ ¤Ë¼è¤ê¹þ¤ó¤À¤³¤È¤Ë¤è¤ê¡¢this ¤Ø¤ÎÂåÆþ¤Ï»þÂåÃÙ¤ì¤Ë¤Ê¤Ã¤¿¡£¤³¤Î¤¿¤á¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥¯¥é¥¹¤Î¥á¥ó¥Ð´Ø¿ôÆâ¤Ç this ¤ËÂåÆþ¤¹¤ë¤³¤È¤Ï̵¸ú¤Ç¤¢¤ë¡£¤¹¤Ê¤ï¤Á¡¢GNU C++ ¤Ï¡¢¥¯¥é¥¹ X ¤Î¥á¥ó¥Ð´Ø¿ôÃæ¤Î this ¤òX * ·¿¤ÎÈóº¸ÊÕÃͤȤ·¤Æ¼è¤ê°·¤¦¡£¤·¤«¤·¡¢°ÊÁ°¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë¡¢-fthis-is-variable ¤ò»ØÄꤹ¤ë¤³¤È¤ÇÍ­¸ú¤È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-fvtable-thunks=thunks-version
¥µ¥ó¥¯ ¤ò»È¤Ã¤Æ²¾ÁÛ´Ø¿ô¤Î¥Ç¥£¥¹¥Ñ¥Ã¥Á¥Æ¡¼¥Ö¥ë(vtable)¤ò¼ÂÁõ¤¹¤ë¡£vtable ¤ò¼ÂÁõ¤¹¤ëµìÍè¤ÎÊýË¡(cfront¤ÎÊýË¡)¤Ç¤Ï¡¢²¾ÁÛ´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¡¢¸Æ¤Ó½Ð¤·Â¦¤Ç this ¥Ý¥¤¥ó¥¿¤òÄ´À°¤¹¤ë¤¿¤á¤ÎÆó¤Ä¤Î¥ª¥Õ¥»¥Ã¥È¤ò³ÊǼ¤·¤Æ¤¤¤¿¡£¿·¤·¤¤¼ÂÁõÊýË¡¤Ç¤Ï¡¢¤¢¤ë¥µ¥ó¥¯´Ø¿ô¤Ø¤Î°ì¸Ä¤Î¥Ý¥¤¥ó¥¿¤ò³ÊǼ¤¹¤ë¡£¤½¤Î¥µ¥ó¥¯´Ø¿ô¤¬É¬ÍפÊÄ´À°¤ò¹Ô¤Ã¤¿¤¦¤¨¤ÇÌÜŪ¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¡£

¥µ¥ó¥¯¤ÎºÇ½é¤Î¼ÂÁõ(¥Ð¡¼¥¸¥ç¥ó1)¤Ë¤Ï¡¢²¾ÁÛ´ðÄ쥯¥é¥¹¤Ë´Ø¤¹¤ë¥Ð¥°¤¬¤¢¤Ã¤¿¡£¤³¤Î¥Ð¥°¤Ï¡¢¥µ¥ó¥¯¤Î¼ÂÁõ¤Î¥Ð¡¼¥¸¥ç¥ó 2 ¤Ç½¤Àµ¤µ¤ì¤Æ¤¤¤ë¡£¥Ð¡¼¥¸¥ç¥ó¤ò 2 ¤Ë»ØÄꤹ¤ë¤È¡¢¥Ð¡¼¥¸¥ç¥ó 1 ¤Î¥µ¥ó¥¯¤È¤Î¸ß´¹À­¤¬Êݤ¿¤ì¤ë¤¬¡¢Í¾Ê¬¤Êµ¡³£¸ì¥³¡¼¥É¤¬¤«¤«¤ë¡£¥Ð¡¼¥¸¥ç¥ó 3 ¤Ë¤Ï¤³¤Î¸ß´¹À­¤Ï¤Ê¤¤¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤Þ¤¿¡¢È¯¸«ÅªÊýË¡¤ò»È¤Ã¤Æ¡¢²¾ÁÛ´Ø¿ô¥Æ¡¼¥Ö¥ë¤ÎÀ¸À®¤òÀ©¸æ¤¹¤ë¡£¤¢¤ë¥¯¥é¥¹¤Ë°ì¤Ä¤Ç¤âÈ󥤥ó¥é¥¤¥ó²¾ÁÛ´Ø¿ô¤¬¤¢¤ì¤Ð¡¢¤½¤ÎÈ󥤥ó¥é¥¤¥ó´Ø¿ô¤Î¤¦¤Á¤ÎÀèÆ¬¤Î°ì¤Ä¤ò´Þ¤àËÝÌõñ°Ì¤Ë¡¢vtable ¤¬¼Í½Ð¤µ¤ì¤ë¡£

ABI ¤òÊѹ¹¤¹¤ëÁ´¤Æ¤Î¥ª¥×¥·¥ç¥óƱÍÍ¡¢libgcc.a ¤ò´Þ¤àÁ´¤Æ¤Î C++ ¥³¡¼¥É¤ò¤³¤Î¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤òƱ°ì¤Ë¤·¤Æ¹½ÃÛ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥Ð¡¼¥¸¥ç¥ó 1 ¤È¥Ð¡¼¥¸¥ç¥ó 2 ¤âÈó¸ß´¹¤Ç¤¢¤ë(²¾ÁÛ´Ø¿ô¤òÄêµÁ¤·¤Æ¤¤¤ë²¾ÁÛ´ðÄì¤ò¤â¤Ä¥¯¥é¥¹¤Ë¤Ä¤¤¤Æ)¡¢Á´¤Æ¤Î¥³¡¼¥É¤òƱ¤¸¥Ð¡¼¥¸¥ç¥ó¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Î gcc ¤Ç¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó 2 ¤Î¥µ¥ó¥¯¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥¿¡¼¥²¥Ã¥È¤Ï¤Ê¤¤¡£Á´¤Æ¤Î¥¿¡¼¥²¥Ã¥È¤Ç¡¢¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¤ÈµìÍè¤Î¼ÂÁõ¤ò»È¤¤¡¢-fvtable-thunks ¤ò»ØÄꤹ¤ë¤È¥Ð¡¼¥¸¥ç¥ó 2 ¤Î¥µ¥ó¥¯¤òÀ¸À®¤¹¤ë¡£

-nostdinc++
¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¡¢C++ ¸ÇÍ­¤Îɸ½à¥Ç¥£¥ì¥¯¥È¥ê¤«¤éõ¤µ¤Ê¤¤¡£¤À¤¬¡¢Â¾¤Îɸ½à¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ¤Ï¸¡º÷¤ò¹Ô¤Ê¤¦¡£(¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢GNU ¤Î C++ ¥é¥¤¥Ö¥é¥ê¤ò¹½ÃÛ¤¹¤ë¤È¤­¤Ë»È¤ï¤ì¤ë¡£)

¤µ¤é¤Ë¡¢°Ê²¼¤ÎºÇŬ²½¡¢·Ù¹ð¡¢¥³¡¼¥ÉÀ¸À®¤Ë´Ø¤¹¤ë¥ª¥×¥·¥ç¥ó¤ÏC++ ¥×¥í¥°¥é¥à¤Î¾ì¹ç¤Ë¤Î¤ß°ÕÌ£¤ò»ý¤Ä¡£

-fno-default-inline
¥¯¥é¥¹¥¹¥³¡¼¥×Æâ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Ë inline ¤ò²¾Äꤷ¤Ê¤¤¡£See Options That Control Optimization. ¤³¤¦¤¤¤¦´Ø¿ô¤Ï¥¤¥ó¥é¥¤¥ó´Ø¿ô¤È»÷¤¿¥ê¥ó¥±¡¼¥¸¤ò»ý¤Ä¡£Ã±¤Ë¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤Ê¤¤¤Î¤Ç¤¢¤ë¡£
-Wctor-dtor-privacy (C++ ¤Î¤ß)
¥¯¥é¥¹¤¬»ÈÍÑÉÔ²Äǽ¤À¤È»×¤¨¤ë¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£¤³¤ì¤Ï¡¢¥¯¥é¥¹¤ÎÁ´¤Æ¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Þ¤¿¤Ï¥Ç¥¹¥È¥é¥¯¥¿¤¬ private ¤Ç¤¢¤ê¡¢friend ¤ä public static ¤Î¥á¥ó¥Ð´Ø¿ô¤¬Ìµ¤¤¤È¤­¤Ç¤¢¤ë¡£
-Wnon-virtual-dtor (C++ ¤Î¤ß)
¥¯¥é¥¹¤¬¡¢¤ª¤½¤é¤¯ virtual ¤Ç¤Ê¤¯¤Æ¤Ï¤¤¤±¤Ê¤¤¥Ç¥¹¥È¥é¥¯¥¿¤òÈó virtual ¤ÈÀë¸À¤·¤Æ¤¤¤ë¤È¤­¤Ë·Ù¹ð¤ò½Ð¤¹¡£Â¿ÁêŪ¤Ë»È¤ï¤ì¤ë¤Ç¤¢¤í¤¦¥¯¥é¥¹¤Ë¸«¤¨¤ë¤«¤é¤Ç¤¢¤ë¡£
-Wreorder (C++ ¤Î¤ß)
¥³¡¼¥É¤Ç¼¨¤µ¤ì¤¿¥á¥ó¥Ð¤Î½é´ü²½½ç½ø¤È¡¢¼ÂºÝ¤Ë¼Â¹Ô¤¹¤ë¤È¤­¤Ë½¾¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤½ç½ø¤¬°ìÃפ·¤Ê¤¤¤È¤­¤Ë¡¢·Ù¹ð¤¹¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¥³¡¼¥É¤ò¹Í¤¨¤ë¡£
struct A {
  int i;
  int j;
  A(): j (0), i (1) { }
};

¤³¤³¤Ç¥³¥ó¥Ñ¥¤¥é¤Ï¡¢i ¤È j ¤Ë¤Ä¤¤¤Æ¤Î¥á¥ó¥Ð½é´ü²½¤¬¡¢¥á¥ó¥Ð¤ÎÀë¸À½ç½ø¤Ë°ìÃפ¹¤ë¤è¤¦¤ËʤÙÊѤ¨¤é¤ì¤ë¤È¤¤¤¦·Ù¹ð¤ò½Ð¤¹¡£

°Ê²¼¤Î -W... ¥ª¥×¥·¥ç¥ó¤Ï -Wall ¤Ë¤Ï±Æ¶Á¤µ¤ì¤Ê¤¤¡£

-Weffc++ (C++ ¤Î¤ß)
Scott Meyers ¤Î¡ÖEffective C++¡×¤Ç½Ò¤Ù¤é¤ì¤Æ¤¤¤ë¥¹¥¿¥¤¥ë¤Î»Ø¿Ë¤«¤é³°¤ì¤Æ¤¤¤ëÍÍ¡¹¤Ê¤â¤Î¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¾ì¹ç¤Ï¡¢É¸½à¥é¥¤¥Ö¥é¥ê¥Ø¥Ã¥À¤¬¤³¤ì¤é¤Î»Ø¿Ë¤ÎÁ´¤Æ¤Ë¤Ï½¾¤Ã¤Æ¤¤¤Ê¤¤¤È¤¤¤¦ÅÀ¤ËÃí°Õ¤¹¤ëɬÍפ¬¤¢¤ë¡£grep -v ¤ò»È¤Ã¤Æ¡¢¤½¤¦¤¤¤¦·Ù¹ð¤ò¼è¤ê½ü¤¯»ö¤¬¤Ç¤­¤ë¡£
-Wno-deprecated (C++ ¤Î¤ß)
ÇÑ»ßÍ׵᤬½Ð¤Æ¤¤¤ëµ¡Ç½¤ò»È¤Ã¤¿¾ì¹ç¤Î·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¡£See Deprecated Features.
-Wno-non-template-friend (C++ ¤Î¤ß)
¥Æ¥ó¥×¥ì¡¼¥È²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥ì¥ó¥É´Ø¿ô¤¬¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë»þ¤Î·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ÌÀ¼¨Åª¤Ê¥Æ¥ó¥×¥ì¡¼¥È»ØÄ꤬ g++ ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤¿¤³¤È¤Ë¤è¤ê¡¢¤½¤Î¥Õ¥ì¥ó¥É¤Î̾Á°¤¬½¤¾þ»Ò̵¤·¤Î¼±ÊÌ»Ò(Î㤨¤Ð¡¢friend foo(int)) ¤Ê¤é¡¢C++ ¸À¸ìµ¬³Ê¤Ç¤Ï¤½¤Î¥Õ¥ì¥ó¥É¤¬Ä̾ï¤Î¡¢È󥯥ó¥×¥ì¡¼¥È´Ø¿ô¤òÀë¸À¤¹¤ë¤«ÄêµÁ¤¹¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¡£(14.5.3Àá¡£) g++ ¤¬ÌÀ¼¨Åª¤Êµ¬Äê¤ò¼ÂÁõ¤¹¤ëÁ°¤Ï¡¢½¤¾þ»Ò̵¤·¤Î¼±Ê̻Ҥϡ¢¥Æ¥ó¥×¥ì¡¼¥È²½¤µ¤ì¤¿´Ø¿ô¤ÎÆÃÄê¤ÎÆÃ¼ì²½¤È²ò¼á²Äǽ¤Ç¤¢¤Ã¤¿¡£¤³¤Îµ¬³Ê¤Ë¹çÃפ·¤Ê¤¤Æ°ºî¤Ï¤â¤Ï¤ä g++ ¤Î¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢-Wnon-teplate-friend ¤ò»ØÄꤹ¤ë¤È GCC ¤Ï´û¸¤Î¥³¡¼¥É¤ÎÃæ¤«¤éÀøºßŪ¤ËÌäÂê¤Ë¤Ê¤ê¤½¤¦¤Ê¤È¤³¤í¤ò¸¡ºº¤¹¤ë¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤Î¿·¤·¤¤Æ°ºî¤Ï -fguiding-decls ¥ª¥×¥·¥ç¥ó¤Ç¤â̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ÀΤΡ¢»ØÄê̵¤·¤Î¥³¥ó¥Ñ¥¤¥é¤Î¥³¡¼¥É¤òÍ­¸ú¤Ë¤¹¤ë¡£¤¢¤ë¤¤¤Ï¡¢-Wno-non-template-friend ¤ò»ØÄꤹ¤ë¤È¡¢µ¬³Ê¤Ë½àµò¤·¤¿¥³¥ó¥Ñ¥¤¥é¤Î¥³¡¼¥É¤òÊÝ»ý¤¹¤ë¤¬¡¢Ìò¤ËΩ¤Ä·Ù¹ð¤Ï½Ð¤Ê¤¯¤Ê¤ë¡£
-Wold-style-cast (C++ ¤Î¤ß)
C++ ¥×¥í¥°¥é¥à¤Ç¸Å¤¤·Á¼°(C¸À¸ì·Á¼°)¤Î¥­¥ã¥¹¥È¤¬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¡¢·Ù¹ð¤ò½Ð¤¹¡£¿·¤·¤¤·Á¼°¤Î¥­¥ã¥¹¥È(static_cast¡¢reinterpret_cast¡¢const_cast) ¤Ï¡¢Í½´ü¤·¤Ê¤¤¸ú²Ì¤ò¼õ¤±¤Ë¤¯¤¤¡£
-Woverloaded-virtual (C++ ¤Î¤ß)
Ƴ½Ð¥¯¥é¥¹¤Î´Ø¿ôÀë¸À¤¬²¾ÁÛ´Ø¿ô¤ÎÄêµÁ¤Ç¥¨¥é¡¼¤Ë¤Ê¤ê¤¦¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë¡£Æ³½Ð¥¯¥é¥¹¤Ç¤Ï¡¢²¾ÁÛ´Ø¿ô¤ÎÄêµÁ¤Ï¡¢´ðÄ쥯¥é¥¹¤Î²¾ÁÛ´Ø¿ôÀë¸À¤Î·¿¥·¥°¥Í¥Á¥ã¤Ë°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¡¢²¾ÁÛ´Ø¿ô¤ÈƱ¤¸Ì¾Á°¤À¤¬¡¢·¿¥·¥°¥Í¥Á¥ã¤¬´ðÄ쥯¥é¥¹¤Î¤É¤ÎÀë¸À¤Ë¤â°ìÃפ·¤Ê¤¤´Ø¿ô¤òÄêµÁ¤¹¤ë¤È·Ù¹ð¤ò½Ð¤¹¡£
-Wno-pmf-conversions (C++ ¤Î¤ß)
¥á¥ó¥Ð´Ø¿ô¤Ø·ë¤ÓÉÕ¤¤¤¿¥Ý¥¤¥ó¥¿¤òÉáÄ̤Υݥ¤¥ó¥¿¤ËÊÑ´¹¤¹¤ë¤È¤­¤Î¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ò̵¸ú¤Ë¤¹¤ë
-Wsign-promo (C++ ¤Î¤ß)
¿½ÅÄêµÁ¤Î²ò·è¤ÎºÝ¤Ë¡¢unsigned ·¿¤Þ¤¿¤ÏÎóµó·¿¤«¤é signed ·¿¤Ø¤Î³Ê¾å¤²¤¬¡¢Æ±¤¸Â礭¤µ¤Î unsigned ·¿¤Ø¤ÎÊÑ´¹¤ò±Û¤¨¤ÆÁªÂò¤µ¤ì¤¿¤È¤­¤Ë·Ù¹ð¤ò½Ð¤¹¡£°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î g++ ¤Ï¡¢unsigned À­¤òÊݸ¤¹¤ë¤³¤È¤ò»î¤ß¤Æ¤¤¤¿¤¬¡¢µ¬³Ê¤¬¸½ºß¤Îưºî¤òÍ׵ᤷ¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë¡£
-Wsynth (C++ ¤Î¤ß)
g++¤Î¹çÀ®¤Î¿¶¤ë¤Þ¤¤¤¬ cfront ¤Î¤â¤Î¤È°ìÃפ·¤Ê¤¤¾ì¹ç¤Ë·Ù¹ð¤¹¤ë¡£Î㤨¤Ð¡¢
struct A {
  operator int ();
  A& operator = (int);
};

main ()
{
  A a,b;
  a = b;
}

¤È¤¤¤¦Îã¤Ç¤Ï¡¢g++ ¤Ï¥Ç¥Õ¥©¥ë¥È¤Î A& operator = (const A&); ¤ò¹çÀ®¤¹¤ë¤¬¡¢cfront ¤Ï¥æ¡¼¥¶ÄêµÁ¤Î operator = ¤ò»È¤¦¡£


Node:Warning Options, Next:, Previous:C++ Dialect Options, Up:Invoking GCC

·Ù¹ð¤òÍ׵᡿Í޻ߤ¹¤ë¥ª¥×¥·¥ç¥ó

·Ù¹ð¤È¤Ï¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤Ç¤¢¤ê¡¢ËÜÍè¤Î¥¨¥é¡¼¤Ç¤Ï¤Ê¤¤¤¬¡¢ÀøºßŪ¤Ê´í¸±À­¤¬¤¢¤Ã¤¿¤ê¡¢¸í¤ê¤¬Â¸ºß¤¹¤ë²ÄǽÀ­¤Î¤¢¤ë¹½Ê¸¤Ë¤Ä¤¤¤ÆÊó¹ð¤¹¤ë¡£

-W ¤Ç»Ï¤Þ¤ë¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢Â¿¤¯¤ÎÆÃÄê¤Î·Ù¹ð¤òÍ׵᤹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£Î㤨¤Ð¡¢-Wimplicit ¤Ï¡¢°ÅÌÛ¤ÎÀë¸À¤Ë¤Ä¤¤¤Æ¤Î·Ù¹ð¤ò½Ð¤¹¤è¤¦Í׵᤹¤ë¡£¤³¤ì¤é¤ÎÆÃÄê¤Î·Ù¹ð¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢·Ù¹ð¤òÍ޻ߤ¹¤ë¡¢-Wno- ¤Ç»Ï¤Þ¤ëÈÝÄê·Á¤¬¤¢¤ë¡£Î㤨¤Ð¡¢-Wno-implicit ¤È¤¤¤¦¤Î¤¬¤¢¤ë¡£¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤Ï¡¢Æó¤Ä¤Î·Á¼°¤Î¤¦¤Á¤Î¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¤¤Êý¤À¤±¤òÎóµó¤¹¤ë¡£

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢GCC ¤Ë¤è¤êÀ¸À®¤µ¤ì¤ë·Ù¹ð¤ÎÎ̤ȼïÎà¤òÀ©¸æ¤¹¤ë¡£

-fsyntax-only
ʸˡ¥Á¥§¥Ã¥¯¤Î¤ß¤ò¹Ô¤Ê¤¤¡¢¤½¤ì°Ê¾å¤Î¤³¤È¤Ï°ìÀڹԤʤï¤Ê¤¤¡£
-pedantic
ANSI C ¤È ISO C++ ¤Ë¸·Ì©¤Ë½àµò¤·¤¿¾ì¹ç¤ËÍ׵ᤵ¤ì¤ë·Ù¹ð¤òÁ´¤ÆÈ¯¤¹¤ë¡£¤Þ¤¿¡¢¶Ø¤¸¤é¤ì¤Æ¤¤¤ë³ÈÄ¥¤ò»È¤Ã¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤òÁ´¤ÆµñÀ䤹¤ë¡£

ANSI C ¤È ISO C++ ¤Ë§¤Ã¤¿¥×¥í¥°¥é¥à¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤â¤·¤Ê¤¯¤Æ¤â¡¢Àµ¤·¤¯¥³¥ó¥Ñ¥¤¥ë¤¬¹Ô¤Ê¤ï¤ì¤ë(¤Þ¤ì¤Ë¡¢-ansi ¤ò¥ª¥×¥·¥ç¥ó¤òɬÍפȤ¹¤ë¾ì¹ç¤â¤¢¤ë¤¬)¡¢¤·¤«¤·¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï¡¢GNU ¤Î³ÈÄ¥µ¡Ç½¤È¸Å¤¤·Á¼°¤Î C ¤È C++ ¤Îµ¡Ç½¤â¥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¤½¤ì¤é¤ÏµñÀ䤵¤ì¤ë¡£

-pedantic ¤Ï¡¢ÀèÆ¬¤ÈËöÈø¤¬ __ ¤Ç¤¢¤ë̾Á°¤ò»ý¤ÄÊÌ¥­¡¼¥ï¡¼¥É¤ò»È¤¦Ê¬¤Ë¤Ï·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ò½Ð¤µ¤Ê¤¤¡£¡ÖêʳØÅª¡×(pedantic)¤Ê·Ù¹ð¤Ï¡¢__extension__ ¤Ë³¤¯¼°¤Ë¤Ä¤¤¤Æ¤âÍ޻ߤµ¤ì¤ë¡£¤·¤«¤·¡¢¤³¤Î¤è¤¦¤ÊÈ´¤±Æ»¤ò»È¤¦¤Î¤Ï¥·¥¹¥Æ¥à¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë¤È¤É¤á¤ë¤Ù¤­¤Ç¤¢¤ê¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Ï»È¤ï¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤Û¤¦¤¬Îɤ¤¡£See Alternate Keywords.

¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÌò¤ËΩ¤Ä¤³¤È¤òÌÜŪ¤È¤·¤Æ¤¤¤Ê¤¤¡£Ã±¤Ë¡¢¤³¤ì¤¬¤Ê¤¤¤È¡¢GCC ¤¬ ANSI ɸ½à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤Èʸ¶ç¤ò¸À¤¤Î©¤Æ¤ëÇÚ¤òËþ­¤µ¤»¤ë¤¿¤á¤À¤±¤Î¤â¤Î¤Ç¤¢¤ë¡£

ÆÉ¼Ô¤ÎÃæ¤Ë¤Ï¡¢-pedantic ¤ò»È¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤¬¸·Ì©¤Ë ANSI C ¤ËŬ¹ç¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¸¡ºº¤·¤Æ¤ß¤ë¿Í¤¬¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤Ç¤â¤¹¤°¤Ë¡¢´üÂÔÄ̤ê¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¤³¤È¤¬Ê¬¤«¤ë¤À¤í¤¦¡£-pedantic ¤Ï¡¢Èó ANSI Ū¤Ê¹½Ê¸¤Î¤¦¤Á¤Î´ö¤Ä¤«¤ò¸«¤Ä¤±¤ë¤À¤í¤¦¡£¤À¤¬¡¢Á´Éô¤Ç¤Ï¤Ê¤¤¡£ANSI C ¤¬¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤òÍ׵ᤷ¤Æ¤¤¤ë¤â¤Î¤À¤±¤Ê¤Î¤Ç¤¢¤ë¡£

ANSI C ¤ËŬ¹ç¤·¤Ê¤¤ÅÀ¤Ë¤Ä¤¤¤Æ¤Ï¤É¤ó¤Ê¤Þ¤Î¤Ç¤âÊó¹ð¤¹¤ëµ¡Ç½¤Ï¾ì¹ç¤Ë¤è¤Ã¤Æ¤ÏÍ­ÍѤ«¤â¤·¤ì¤Ê¤¤¤¬¡¢ÁêÅö¤Îºî¶ÈÎ̤òɬÍפȤ¹¤ë¤·¡¢-pedantic ¤È¤ÏÁ´¤¯°Û¤Ê¤Ã¤¿¤â¤Î¤Ë¤Ê¤ë¤À¤í¤¦¡£²æ¡¹¤Ï¶á¤¤¾­Í褳¤Î¤è¤¦¤Êµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤¹¤ë·×²è¤Ï¤Ê¤¤¡£

-pedantic-errors
-pedantic ¤ÈƱÍͤÀ¤¬¡¢·Ù¹ð¤ÎÂå¤ï¤ê¤Ë¥¨¥é¡¼¤È¤¹¤ë¡£
-w
Á´¤Æ¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍ޻ߤ¹¤ë¡£
-Wno-import
#import ¤Î»È¤¤Êý¤Ë´Ø¤¹¤ë·Ù¹ð¤òÍ޻ߤ¹¤ë¡£
-Wchar-subscripts
ÇÛÎó¤Îꤍ»ú¤Î·¿¤¬ char ¤Ê¤é·Ù¹ð¤ò½Ð¤¹¡£¤³¤ì¤ÏÎɤ¯¤¢¤ë´Ö°ã¤¤¤Î¸µ¤È¤Ê¤ë¡£¥×¥í¥°¥é¥Þ¤Ï¡¢¤³¤Î·¿¤¬¥Þ¥·¥ó¤Ë¤è¤Ã¤Æ¤ÏÉ乿ÉÕ¤­¤Ë¤Ê¤ë¤³¤È¤òÎɤ¯Ëº¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£
-Wcomment
¥³¥á¥ó¥È³«»Ïʸ»úÎó /* ¤¬ /* ·Á¼°¤Î¥³¥á¥ó¥ÈÃæ¤Ë¸½¤ì¤¿¤ê¡¢¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å-²þ¹Ô¤¬ // ·Á¼°¤Î¥³¥á¥ó¥È¤Ë¸½¤ì¤¿¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£
-Wformat
printf ¤ä scanf Åù¤Î´Ø¿ô¤Î¸Æ¤Ó¤À¤·¤ò¸¡ºº¤·¡¢»ØÄꤵ¤ì¤¿°ú¿ô¤Î·¿¤¬¡¢¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Ç»ØÄꤵ¤ì¤¿¤â¤Î¤È¤¢¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£
-Wimplicit-int
Àë¸À¤Ë·¿»ØÄ꤬¤Ê¤¤¾ì¹ç¤Ë·Ù¹ð¤ò¤À¤¹¡£
-Wimplicit-function-declaration
-Werror-implicit-function-declaration
´Ø¿ô¤¬Àë¸À¤µ¤ì¤ëÁ°¤Ë»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë·Ù¹ð(¤¢¤ë¤¤¤Ï¥¨¥é¡¼)¤ò½Ð¤¹¡£
-Wimplicit
-Wimplicit-int ¤È -Wimplicit-function-declaration ¤ËƱ¤¸¡£
-Wmain
main ¤Î·¿¤ËÉÔÈ÷¤¬¤¢¤ë¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£main ¤Ï¡¢³°Éô¥ê¥ó¥±¡¼¥¸¤Ç¡¢int ¤òÊÖ¤·¡¢Å¬Àڤʷ¿¤Î°ú¿ô¤ò¥¼¥í¸Ä¤«¡¢Æó¸Ä¤«¡¢»°¸Ä¤ò¼è¤ë´Ø¿ô¤È¤¹¤Ù¤­¤Ç¤¢¤ë¡£
-Wmultichar
Ê£¿ôʸ»ú¤«¤é¤Ê¤ëʸ»úÄê¿ô('FOOF' ¤¬»È¤ï¤ì¤¿¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£¤³¤¦¤¤¤¦¤â¤Î¤ÏÉáÄ̤ϥ桼¥¶¤Î¥³¡¼¥É¤Î¥¿¥¤¥Ý¤ò¼¨¤·¤Æ¤ª¤ê¡¢¼ÂÁõÄêµÁ¤ÎÃͤˤʤë¤Î¤Ç¡¢²ÄȤʥ³¡¼¥É¤Ç¤Ï»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
-Wparentheses
ÆÃÄê¤Îʸ̮¤Ë¤ª¤¤¤Æ³ç¸Ì¤¬¾Êά¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£¤½¤Î¤è¤¦¤Êʸ̮¤È¤·¤Æ¤Ï¡¢¿¿µ¶Ãͤ¬´üÂÔ¤µ¤ì¤Æ¤¤¤ëʸ̮¤ÇÂåÆþ¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤¿¤ê¡¢Í¥Àè½ç°Ì¤òÎɤ¯´Ö°ã¤¨¤ë¿Í¤¬Â¿¤¤¤è¤¦¤Ê±é»»»Ò¤¬Æþ¤ì»Ò¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹çÅù¤Ç¤¢¤ë¡£

¤Þ¤¿¡¢¤¢¤ë else ʸ¤¬¤É¤Î if ʸ¤Ë°¤¹¤ë¤«º®Í𤹤ë²ÄǽÀ­¤Î¤¢¤ë¹½Ê¸¤Ë¤Ä¤¤¤Æ¤â·Ù¹ð¤¹¤ë¡£°Ê²¼¤Ë¤½¤ÎÎã¤òµó¤²¤ë¡£

{
  if (a)
    if (b)
      foo ();
  else
    bar ();
}

C ¤Ç¤Ï¡¢¤É¤Î else ʸ¤â²Äǽ¤Ê¤¦¤Á¤ÇºÇ¤âÆâ¦¤Î if ʸ¤Ë½ê°¤¹¤ë¡£¤³¤ì¤Ï¡¢¥×¥í¥°¥é¥Þ¤¬´üÂÔ¤¹¤ë¤â¤Î¤È°ã¤¦¤³¤È¤¬Îɤ¯¤¢¤ë¡£¾å¤ÎÎã¤Ç¤Ï¡¢¥×¥í¥°¥é¥Þ¤¬´üÂÔ¤¹¤ë¤â¤Î¤Ï»ú²¼¤²¤Ç¼¨¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£¤³¤Î¤è¤¦¤Êº®Íð¤Î²ÄǽÀ­¤¬¤¢¤ë¾ì¹ç¤Ï¡¢GNU C ¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢·Ù¹ð¤ò½Ð¤¹¡£·Ù¹ð¤ò½Ð¤µ¤Ê¤¤ÍѤˤ¹¤ë¤Ë¤Ï¡¢ºÇ¤âÆâ¦¤Î if ʸ¤ò³ç¸Ì¤ÇÌÀ¼¨Åª¤Ë³ç¤Ã¤Æ¡¢else ¤¬³°Â¦¤Î if ¤Ë¤Ï°¤¹¤ë½Ñ¤¬Ìµ¤¤¤³¤È¤òÃΤ餻¤ë¡£¤½¤ì¤òÈ¿±Ç¤·¤¿¥³¡¼¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£

{
  if (a)
    {
      if (b)
        foo ();
      else
        bar ();
    }
}

-Wreturn-type
´Ø¿ôÄêµÁ¤Ç¡¢Ìá¤êÃÍ·¿¤Î»ØÄ꤬¤Ê¤¯¥Ç¥Õ¥©¥ë¥È¤Î int ·¿¤Ë¤Ê¤ë´Ø¿ô¤Ë¤Ä¤¤¤Æ·Ù¹ð¤ò½Ð¤¹¡£¤Þ¤¿¡¢Ìá¤êÃÍ·¿¤¬ void ¤Ç¤Ê¤¤´Ø¿ôÆâ¤Ç¡¢Ìá¤êÃͤʤ·¤Î return ʸ¤¬¤¢¤Ã¤¿¤é·Ù¹ð¤ò½Ð¤¹¡£
-Wswitch
switch ʸ¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬Îóµó·¿¤Ç¤¢¤ê¡¢¤½¤ÎÎóµó·¿¤ÎÎóµóÄê¿ô¤Î¤¦¤Á¡¢°ì¸Ä°Ê¾å¤Ë¤Ä¤¤¤Æ case ¤¬·ç¤±¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢·Ù¹ð¤ò½Ð¤¹¡£(¥é¥Ù¥ë default ¤¬¤¢¤ì¤Ð¡¢¤³¤Î·Ù¹ð¤Ï¤Ç¤Ê¤¤¡£) ÎóµóÃͤÎÈϰϳ°¤Î case ¥é¥Ù¥ë¤¬¤¢¤ë¾ì¹ç¤â¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¤³¤Î·Ù¹ð¤¬½Ð¤µ¤ì¤ë¡£
-Wtrigraphs
¥È¥ê¥°¥é¥Õ¤ò¸«¤Ä¤±¤¿¤é·Ù¹ð¤ò½Ð¤¹(¥È¥ê¥°¥é¥Õ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç)¡£
-Wunused
ÊÑ¿ô¤¬¡¢Àë¸À°Ê³°¤Î½ê¤Ç»È¤ï¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢´Ø¿ô¤¬ static ¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤ë¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥é¥Ù¥ë¤¬Àë¸À¤µ¤ì¤Æ¤¤¤ë¤¬»È¤ï¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¤½¤ì¤ËÌÀ¼¨Åª¤Ë¤Ï»È¤ï¤ì¤Ê¤¤·ë²Ì¤ò·×»»¤·¤Æ¤¤¤ëʸ¤¬¤¢¤ë¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£

»È¤ï¤ì¤Æ¤¤¤Ê¤¤´Ø¿ô¤Î²¾°ú¿ô¤Ë¤Ä¤¤¤Æ¤Î·Ù¹ð¤ò½Ð¤¹¤Ë¤Ï¡¢-W ¤È -Wunused ¤òξÊý»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¤¢¤ë¼°¤Ë¤Ä¤¤¤Æ¡¢¤³¤Î·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢Ã±¤Ë¤½¤Î¼°¤òvoid ¤Ë¥­¥ã¥¹¥È¤¹¤ë¡£ÊÑ¿ô¤È²¾°ú¿ô¡¢¥é¥Ù¥ë¤Ë¤Ä¤¤¤Æ¤³¤Î·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢unused °À­¤ò»È¤¦(see Variable Attributes)¡£

-Wuninitialized
¼«Æ°ÊÑ¿ô¤¬¡¢ºÇ½é¤Ë½é´ü²½¤¹¤ëÁ°¤Ë»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë·Ù¹ð¤ò¤À¤¹¡£

¤³¤Î·Ù¹ð¤Ï¡¢ºÇŬ²½¤òȼ¤¦¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ë¤Î¤ßȯÀ¸¤¹¤ë¡£¤Ê¤¼¤Ê¤é¡¢¤³¤Î·Ù¹ð¤ò½Ð¤¹¤Ë¤Ï¡¢ºÇŬ²½¤ò¹Ô¤Ê¤Ã¤¿¾ì¹ç¤Ë¤Î¤ß·×»»¤µ¤ì¤ë¡¢¥Ç¡¼¥¿¥Õ¥í¡¼¾ðÊó¤òɬÍפȤ¹¤ë¤«¤é¤Ç¤¢¤ë¡£-O ¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢Ã±¤Ë¤³¤Î·Ù¹ð¤¬½Ð¤Ê¤¤¤À¤±¤Ç¤¢¤ë¡£

¤³¤Î·Ù¹ð¤Ï¡¢¥ì¥¸¥¹¥¿³äÅö¤Î¸õÊä¤È¤Ê¤ëÊÑ¿ô¤ËÂФ·¤Æ¤À¤±½Ð¤µ¤ì¤ë¡£¤³¤Î¤¿¤á¡¢volatile ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤¿¤ê¡¢¥¢¥É¥ì¥¹¤ò¼è¤Ã¤Æ¤¤¤¿¤ê¡¢¥µ¥¤¥º¤¬ 1¡¢2¡¢4¡¢8 ¥Ð¥¤¥È°Ê³°¤ÎÊÑ¿ô¤ËÂФ·¤Æ¤Î¤ßȯÀ¸¤¹¤ë¡£¤Þ¤¿¡¢¹½Â¤ÂΡ¢¶¦ÍÑÂΡ¢ÇÛÎó¤Ë¤Ä¤¤¤Æ¤â¡¢¤¿¤È¤¨¤½¤ì¤é¤¬¥ì¥¸¥¹¥¿¤ËÃÖ¤«¤ì¤Æ¤¤¤Æ¤â·Ù¹ð¤Ï¤Ç¤Ê¤¤¡£

¤½¤ì¼«¿È·è¤·¤Æ»È¤ï¤ì¤ë¤³¤È¤Î¤Ê¤¤Ãͤò·×»»¤¹¤ë¤Î¤Ë¤À¤±»È¤ï¤ì¤ëÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Ï·Ù¹ð¤¬½Ð¤Ê¤¤¤³¤È¤ËÃí°Õ¡£¤½¤¦¤¤¤¦·×»»¼«ÂΤ¬¡¢·Ù¹ð¤¬½ÐÎϤµ¤ì¤ëÁ°¤Î¥Ç¡¼¥¿¥Õ¥í¡¼²òÀϤǺï½ü¤µ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£

¤³¤ì¤é¤Î·Ù¹ð¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤Ê¤¯¤Æ¥ª¥×¥·¥ç¥ó¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢¤½¤Î¥³¡¼¥É¤Ë¥¨¥é¡¼¤¬¤¢¤ë¤è¤¦¤Ë¸«¤¨¤ë¤Î¤Ë¡¢Àµ¤·¤¤¤«¤â¤·¤ì¤Ê¤¤¤È¤¤¤¦Íýͳ¤¬Á´¤ÆÊ¬¤«¤ë¤Û¤É GCC ¤Ï¸­¤¯¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£°Ê²¼¤Ë¡¢¤É¤¦¤¤¤¦¤Õ¤¦¤ËȯÀ¸¤¹¤ë¤«¤ÎÎã¤ò°ì¤Ä¼¨¤¹¡£

{
  int x;
  switch (y)
    {
    case 1: x = 1;
      break;
    case 2: x = 4;
      break;
    case 3: x = 5;
    }
  foo (x);
}

y ¤ÎÃͤ¬¾ï¤Ë 1¡¢2¡¢3 ¤Î¤É¤ì¤«¤é¤Ê¤é¡¢x ¤Ï¾ï¤Ë½é´ü²½¤µ¤ì¤ë¡£¤À¤¬¡¢GCC ¤Ï¤½¤Î¤³¤È¤òÃΤé¤Ê¤¤¡£¼¡¤ÎÎã¤Ï¤â¤¦°ì¤Ä¤ÎÎɤ¯¤¢¤ë¥±¡¼¥¹¤Ç¤¢¤ë¡£

{
  int save_y;
  if (change_y) save_y = y, y = new_y;
  ...
  if (change_y) y = save_y;
}

¤³¤Î¾ì¹ç¤Ï¡¢save_y ¤¬»È¤ï¤ì¤ë¤Î¤Ï¡¢Ãͤ¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¤À¤«¤éÌäÂê¤Ï¤Ê¤¤¡£

»È¤Ã¤Æ¤¤¤ë´Ø¿ô¤Î¤¦¤Á¡¢·è¤·¤ÆÌá¤é¤Ê¤¤´Ø¿ô¤òÁ´¤Æ noreturn ¤ÈÀë¸À¤¹¤ë¤È¡¢´ö¤Ä¤«¤Î¸«¤»³Ý¤±¤Î·Ù¹ð¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

-Wunknown-pragmas
GCC ¤¬ÃΤé¤Ê¤¤ #pragma Ì¿Îá¤Ë½Ð²ñ¤Ã¤¿¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£¤³¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢¥·¥¹¥Æ¥à¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÃæ¤ËÃΤé¤Ê¤¤ pragma ¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤â·Ù¹ð¤ò½Ð¤¹¡£¤³¤ì¤Ï¡¢·Ù¹ð¤¬¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó -Wall ¤Ë¤è¤Ã¤Æ¤Î¤ßÍ­¸ú¤Ë¤Ê¤ë¾ì¹ç¤Ç¤Ï¤Ê¤¤¡£
-Wall
¾åµ­¤ÎÁ´¤Æ¤Î -W ¥ª¥×¥·¥ç¥ó¤òÁȤ߹ç¤ï¤»¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¥æ¡¼¥¶¤Ë¤è¤Ã¤Æ¤Ïµ¿Ìä¤Ë»×¤¦¤è¤¦¤Ê¹½Ê¸¤Î¤¦¤Á¡¢²óÈò¤·¤¿¤êÍ޻ߤ¹¤ë¤è¤¦½¤Àµ¤¹¤ë¤Î¤¬´Êñ¤Ê¤â¤Î¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¬¥Þ¥¯¥í¤ò»È¤Ã¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤Ã¤Æ¤â¡¢Á´¤Æ¤Ë¤Ä¤¤¤Æ·Ù¹ð¤ò½Ð¤¹¡£

°Ê²¼¤Î -W... ¥ª¥×¥·¥ç¥ó¤Ï¡¢-Wall ¤Ë¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£¤³¤ÎÃæ¤Î´ö¤Ä¤«¤Ï¡¢°ìÈ̤ˤϥ桼¥¶¤¬ÌäÂê¤È¤Ï¹Í¤¨¤Ê¤¤¤³¤È¤¬Â¿¤¤¹½Ê¸¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë¤¬¡¢¸¡ºº¤·¤¿¤¯¤Ê¤ë¤³¤È¤â»þ¡¹¤¢¤ë¤è¤¦¤ÊÌäÂê¤Ç¤â¤¢¤ë¡£¤½¤Î¾¤Î¤â¤Î¤Ï¡¢¤¢¤ë¾ì¹ç¤Ë¤Ï²óÈò¤¹¤ë¤³¤È¤¬É¬ÍפÀ¤Ã¤¿¤ê¡¢¤¢¤ë¤¤¤Ï²óÈò¤¹¤ë¤³¤È¤¬Æñ¤·¤¤¹½Ê¸¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë¡£¤³¤ì¤é¤Î·Ù¹ð¤Ï¡¢½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Î¥³¡¼¥É¤Î´Êñ¤Ê½¤ÀµÊýË¡¤¬¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£

-W
°Ê²¼¤Î½ÐÍè»ö¤ËÂФ·¤ÆÄɲäǷٹð¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ¹¤ë¡£
-Wtraditional
µìÍè¤Î C ¤È ANSI C ¤Çưºî¤¬°Û¤Ê¤ë¹½Ê¸¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë¡£
-Wundef
̤ÄêµÁ¤Î¼±Ê̻Ҥ¬¡¢#if À©¸æ»Ò¤ÎÃæ¤Çɾ²Á¤µ¤ì¤ë¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£
-Wshadow
¤¢¤ë¥í¡¼¥«¥ëÊÑ¿ô¤¬ÊÌ¤Î¥í¡¼¥«¥ëÊÑ¿ô¤òʤ¤¤±£¤¹»þ¤Ë·Ù¹ð¤ò½Ð¤¹¡£
-Wid-clash-len
Æó¤Ä¤Î°Û¤Ê¤ë¼±Ê̻Ҥκǽé¤Î len ʸ»ú¤¬°ìÃפ¹¤ë¤È¤­¤Ë·Ù¹ð¤¹¤ë¡£¤³¤ì¤Ï¡¢¥×¥í¥°¥é¥à¤ò¤¢¤ë¼ï¤Î¸Å¤¤¡¢Éå¤Ã¤¿¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤¬Ä̤ë¤è¤¦¤Ë¤¹¤ë¤È¤­¤ËÌò¤ËΩ¤Ä¤Ç¤¢¤í¤¦¡£
-Wlarger-than-len
len ¥Ð¥¤¥È¤è¤êÂ礭¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£
-Wpointer-arith
´Ø¿ô·¿¤ä void ·¿¤Î¡ÖÂ礭¤µ¡×¤Ë°Í¸¤·¤Æ¤¤¤ë¤â¤ÎÁ´¤Æ¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë¡£GNU C ¤Ï¡¢void * ¥Ý¥¤¥ó¥¿¤È´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤Î·×»»¤ËÊØÍø¤Ê¤è¤¦¤Ë¡¢¤³¤ì¤é¤Î·¿¤ÎÂ礭¤µ¤Ë 1 ¤ò³ä¤êÅö¤Æ¤Æ¤¤¤ë¡£
-Wbad-function-cast
´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¡¢¥Þ¥Ã¥Á¤·¤Ê¤¤·¿¤Ë¥­¥ã¥¹¥È¤µ¤ì¤¿»þ¤Ë·Ù¹ð¤¹¤ë¡£Î㤨¤Ð¡¢int malloc() ¤¬ anything * ¤Ë¥­¥ã¥¹¥È¤µ¤ì¤ë¤È·Ù¹ð¤ò½Ð¤¹¡£
-Wcast-qual
¥Ý¥¤¥ó¥¿¤¬¡¢¤½¤ì¤¬»Ø¤¹·¿¤«¤é·¿½¤¾þ»Ò¤ò¼è¤ê½ü¤¤¤¿·¿¤Ë¥­¥ã¥¹¥È¤µ¤ì¤ë¤È·Ù¹ð¤ò½Ð¤¹¡£Î㤨¤Ð¡¢const char * ¤ò char * ¤Ë¥­¥ã¥¹¥È¤¹¤ë¤È·Ù¹ð¤ò½Ð¤¹¡£
-Wcast-align
¥Ý¥¤¥ó¥¿¤¬¡¢¤½¤Î»Ø¤¹·¿¤ËɬÍפȤµ¤ì¤ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Â礭¤¯¤Ê¤ë¤è¤¦¤Ë¥­¥ã¥¹¥È¤µ¤ì¤ë¤È·Ù¹ð¤ò½Ð¤¹¡£Î㤨¤Ð¡¢À°¿ô¤Ï2¥Ð¥¤¥È¤Þ¤¿¤Ï4¥Ð¥¤¥È¶­³¦¤Ç¤·¤«¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤µ¡¼ï¤Ç¡¢char * ¤ò int * ¤Ë¥­¥ã¥¹¥È¤¹¤ë¤È·Ù¹ð¤¬½Ð¤ë¡£
-Wwrite-strings
ʸ»úÎóÄê¿ô¤Î·¿¤ò const char[length] ¤È¤·¡¢¤½¤Îʸ»úÎó¤Î¥¢¥É¥ì¥¹¤òÈóconst¤Î char * ·¿¤Î¥Ý¥¤¥ó¥¿¤Ë¥³¥Ô¡¼¤·¤¿¤È¤­¤Ë·Ù¹ð¤ò½Ð¤µ¤»¤ë¤è¤¦¤Ë¤¹¤ë¡£¤³¤Î·Ù¹ð¤Ï¡¢Ê¸»úÎóÄê¿ô¤Ë½ñ¤­¹þ¤à²ÄǽÀ­¤Î¤¢¤ë¥³¥ó¥Ñ¥¤¥ë»þ¥³¡¼¥É¤ò¸«¤Ä¤±¤ë½õ¤±¤È¤Ê¤ë¡£¤¿¤À¤·¡¢Àë¸À¤È¥×¥í¥È¥¿¥¤¥×¤Ç const ¤òÃí°Õ¿¼¤¯»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤¦¤·¤Ê¤¤¤È¡¢Ã±¤Ë¼ÙËâ¤Ë¤Ê¤ë¤À¤±¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢-Wall ¤Ç¤Ï¤³¤Î·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£
-Wconversion
¥×¥í¥È¥¿¥¤¥×Àë¸À¤Î¤¿¤á¤Ë¡¢¥×¥í¥È¥¿¥¤¥×Àë¸À¤¬¤Ê¤¤¾ì¹ç¤ËƱ¤¸°ú¿ô¤¬¼õ¤±¤ë¤Î¤È¤Ï°Û¤Ê¤ë·¿ÊÑ´¹¤¬µ¯¤³¤ë¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£¤³¤ì¤Ï¡¢¸ÇÄê¾®¿ôÅÀ¤ÈÉâÆ°¾®¿ôÅÀ´Ö¤ÎÊÑ´¹¤ò´Þ¤ß¡¢¥Ç¥Õ¥©¥ë¥È¤Î³Ê¾å¤²¤ÈƱ¤¸¤Ë¤Ê¤ë¾ì¹ç¤ò½ü¤¤¤Æ¡¢¸ÇÄê¾®¿ôÅÀ°ú¿ô¤ÎÉý¤äÉ乿¤òÊѤ¨¤ëÊÑ´¹¤â´Þ¤à¡£

¤Þ¤¿¡¢Éé¤ÎÀ°¿ôÄê¿ô¼°¤¬°ÅÌÛ¤ËÉ乿¤Ê¤··¿¤ËÊÑ´¹¤µ¤ì¤ë¤È¤­¤â·Ù¹ð¤ò½Ð¤¹¡£Î㤨¤Ð¡¢x ¤¬É乿¤Ê¤·¤Ç¤¢¤ì¤Ð¡¢x = -1 ¤È¤¤¤¦ÂåÆþ¤Ë·Ù¹ð¤ò½Ð¤¹¡£¤·¤«¤·¡¢(unsigned) -1 ¤Î¤è¤¦¤ÊÌÀ¼¨Åª¤Ê¥­¥ã¥¹¥È¤Ë¤Ï·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¡£

-Wsign-compare
É乿ÉÕ¤­¤ÎÃͤÈÉ乿¤Ê¤·¤ÎÃͤòÈæ³Ó¤¹¤ë¤È¤­¡¢É乿ÉÕ¤­¤ÎÃͤ¬É乿¤Ê¤·¤ËÊÑ´¹¤µ¤ì¤ë¤È´Ö°ã¤Ã¤¿·ë²Ì¤Ë¤Ê¤ë¤È¤­¤Ë·Ù¹ð¤ò½Ð¤¹¡£¤³¤Î·Ù¹ð¤Ï -W ¤Ë¤è¤Ã¤Æ¤âÍ­¸ú¤Ë¤Ê¤ë¡£-W ¤¬½Ð¤¹Â¾¤Î·Ù¹ð¤ò¡¢¤³¤Î·Ù¹ð¤ò½Ð¤µ¤º¤ËÆÀ¤ë¤Ë¤Ï¡¢-W -Wno-sign-compare ¤ò»È¤¦¡£
-Waggregate-return
¹½Â¤ÂΤ䶦ÍÑÂΤòÊÖ¤¹´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ë¤È·Ù¹ð¤¹¤ë¡£(ÇÛÎó¤òÊÖ¤»¤ë¸À¸ì¤Ç¤â¡¢·Ù¹ð¤ò°ú¤­½Ð¤¹¡£)
-Wstrict-prototypes
´Ø¿ô¤¬¡¢°ú¿ô¤Î·¿»ØÄê¤Ê¤·¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤¿¤ê¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È·Ù¹ð¤ò½Ð¤¹¡£(¸Å¤¤·Á¼°¤Î´Ø¿ôÄêµÁ¤Ï¡¢°ú¿ô¤Î·¿¤ò»ØÄꤹ¤ëÀë¸À¤¬»öÁ°¤Ë¤¢¤ì¤Ð¡¢µö¤µ¤ì¡¢·Ù¹ð¤Ï½Ð¤Ê¤¤¡£)
-Wmissing-prototypes
¥°¥í¡¼¥Ð¥ë¤Ê´Ø¿ô¤¬»öÁ°¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ê¤·¤ÇÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£¤³¤Î·Ù¹ð¤Ï¡¢´Ø¿ô¤ÎÄêµÁ¼«¿È¤¬¥×¥í¥È¥¿¥¤¥×Àë¸À¤òÄ󶡤·¤Æ¤¤¤ë¾ì¹ç¤Ç¤âȯ¹Ô¤µ¤ì¤ë¡£ÌÜŪ¤Ï¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤¥°¥í¡¼¥Ð¥ë¤Ê´Ø¿ô¤ò¸¡½Ð¤¹¤ë¤³¤È¤Ë¤¢¤ë¡£
-Wmissing-declarations
¥°¥í¡¼¥Ð¥ë¤Ê´Ø¿ô¤¬»öÁ°¤ÎÀë¸À¤Ê¤·¤ÇÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë·Ù¹ð¤ò½Ð¤¹¡£´Ø¿ô¤ÎÄêµÁ¼«¿È¤¬¥×¥í¥È¥¿¥¤¥×Àë¸À¤òÄ󶡤·¤Æ¤¤¤ë¾ì¹ç¤Ç¤â·Ù¹ð¤¬½Ð¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤¥°¥í¡¼¥Ð¥ë¤Ê´Ø¿ô¤ò¸¡½Ð¤¹¤ë¡£
-Wmissing-noreturn
°À­ noreturn ¤Î¸õÊä¤Ë¤Ê¤ë²ÄǽÀ­¤Î¤¢¤ë´Ø¿ô¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë¡£¤³¤ì¤é¤Ï¤¢¤¯¤Þ¤Ç¸õÊä¤Ç¤¢¤Ã¤Æ¡¢ÀäÂÐŪ¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¡£noreturn °À­¤òÄɲ乤ëÁ°¤Ë¡¢´Ø¿ô¤¬¼ÂºÝ¤Ë·è¤·¤ÆÌá¤é¤Ê¤¤¤³¤È¤ò¼«Ê¬¤ÇÃí°Õ¿¼¤¯¸¡¾Ú¤¹¤ëɬÍפ¬¤¢¤ë¡£¤½¤¦¤·¤Ê¤¤¤È¡¢Èù̯¤Ê¥³¡¼¥ÉÀ¸À®¤Î¥Ð¥°¤¬»ý¤Á¹þ¤Þ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
-Wredundant-decls
Ʊ¤¸¥¹¥³¡¼¥×Æâ¤ÇÊ£¿ô²óÀë¸À¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ì¤Ð·Ù¹ð¤¹¤ë¡£¤³¤ì¤Ï¡¢Ê£¿ô²óÀë¸À¤¹¤ë¤³¤È¤¬Í­¸ú¤Ç¤¢¤ê¡¢²¿¤âÊѤ¨¤Ê¤¤¾ì¹ç¤Ç¤â³ºÅö¤¹¤ë¡£
-Wnested-externs
extern Àë¸À¤¬´Ø¿ôÆâ¤Ë¤¢¤ë¤È·Ù¹ð¤¹¤ë¡£
-Winline
´Ø¿ô¤¬ inline Àë¸À¤µ¤ì¤Æ¤¤¤ë¤«¡¢-finline-functions ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¡¢¥¤¥ó¥é¥¤¥óŸ³«¤Ç¤­¤Ê¤¤´Ø¿ô¤¬¤¢¤ì¤Ð·Ù¹ð¤ò½Ð¤¹¡£
-Wlong-long
long long ·¿¤¬»È¤ï¤ì¤Æ¤¤¤ë¤È·Ù¹ð¤ò½Ð¤¹¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£¤³¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ò½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢-Wno-long-long ¤ò»ØÄꤹ¤ë¡£-Wlong-long ¤È-Wno-long-long ¥ª¥×¥·¥ç¥ó¤Ï¡¢-pedantic ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß¡¢¹Í褵¤ì¤ë¡£
-Werror
Á´¤Æ¤Î·Ù¹ð¤ò¥¨¥é¡¼¤ËÊѤ¨¤ë¡£


Node:Debugging Options, Next:, Previous:Warning Options, Up:Invoking GCC

ÆÉ¼Ô¤Î¥×¥í¥°¥é¥à¤ä GCC ¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë¤¿¤á¤Î¥ª¥×¥·¥ç¥ó

GCC ¤Ë¤Ï¿§¡¹ÆÃÊ̤ʥª¥×¥·¥ç¥ó¤¬¤¢¤Ã¤Æ¡¢¥æ¡¼¥¶¤Î¥×¥í¥°¥é¥à¤ä GCC ¼«ÂΤò¥Ç¥Ð¥Ã¥°¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£

-g
¥Ç¥Ð¥Ã¥°¾ðÊó¤ò¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¸ÇÍ­¤Î·Á¼°(stabs¡¢ COFF¡¢ XCOFF¡¢¤¢¤ë¤¤¤Ï DWARF)¤ÇÀ¸À®¤¹¤ë¡£GDB ¤Ï¡¢¤³¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤ò»È¤¦¤Èưºî¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£

stabs ·Á¼°¤ò»È¤Ã¤Æ¤¤¤ë¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¡¢-g ¤ò»ØÄꤹ¤ë¤È¡¢GDB ¤À¤±¤¬»È¤¦¤³¤È¤Î¤Ç¤­¤ëÆÃÊ̤ΥǥХå°¾ðÊó¤ò»È¤¦¤è¤¦¤Ë¤Ê¤ë¡£¤³¤ÎÆÃÊ̤ʾðÊó¤Ï GDB ¤Î¾ì¹ç¤Ë¤Ï¥Ç¥Ð¥Ã¥°¤ò¤·¤ä¤¹¤¯¤¹¤ë¤¬¡¢Â¾¤Î¥Ç¥Ð¥Ã¥¬¤ò»È¤¦¾ì¹ç¤Ï¡¢¤ª¤½¤é¤¯¡¢¥Ç¥Ð¥Ã¥¬¤¬Íî¤Á¤¿¤ê¡¢¥×¥í¥°¥é¥à¤òÆÉ¤ß¹þ¤á¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£ÆÃÊ̤ʾðÊó¤òÀ¸À®¤¹¤ë¤«¤É¤¦¤«¤ò¤¢¤ëÄøÅÙÀ©¸æ¤·¤¿¤¤¾ì¹ç¤Ï¡¢-gstabs+¡¢-gstabs¡¢-gxcoff+¡¢-gxcoff¡¢-gdwarf-1+¡¢-gdwarf-1 ¤ò»È¤¦¤³¤È(¸å½Ò»²¾È)¡£

¾¤Î¿¤¯¤Î C ¥³¥ó¥Ñ¥¤¥é¤È°ã¤Ã¤Æ¡¢GCC ¤Ç¤Ï -g ¤ò -O ¤È°ì½ï¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ºÇŬ²½¤µ¤ì¤¿¥³¡¼¥É¤Ë¤è¤ë¥·¥ç¡¼¥È¥«¥Ã¥È¤Î¤¿¤á¡¢°Ê²¼¤Î¤è¤¦¤Ë¡¢¶Ã¤¯¤è¤¦¤Ê·ë²Ì¤¬»þ¡¹½Ð¤ë¤¬¡£Àë¸À¤·¤¿¤Ï¤º¤ÎÊÑ¿ô¤¬Á´¤¯Â¸ºß¤·¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£À©¸æ¤Îή¤ì¤¬¡¢´Êñ¤Ë¸À¤¨¤Ð¡¢Í½ÁÛ¤·¤Æ¤¤¤Ê¤¤¾ì½ê¤Ë°Üư¤·¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë¡£Ê¸¤ÎÃæ¤Ë¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¤â¤Î¤â½Ð¤Æ¤¯¤ë¡£¤½¤ì¤é¤Îʸ¤¬¡¢´û¤ËÆþ¼êºÑ¤ß¤Î°ìÄê¤Î·ë²Ì¤äÃͤò·×»»¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£Ê¸¤ÎÃæ¤Ë¤ÏÊ̤ξì½ê¤Ç¼Â¹Ô¤µ¤ì¤ë¤â¤Î¤â¤¢¤ë¡£¥ë¡¼¥×¤Î³°¤Ë°Üư¤·¤¿¤«¤é¤Ç¤¢¤ë¡£

¤½¤ì¤Ë¤â¤«¤«¤ï¤é¤º¡¢ºÇŬ²½¤µ¤ì¤¿½ÐÎϤò¥Ç¥Ð¥Ã¥°¤¹¤ë¤³¤È¤Ï²Äǽ¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢¥Ð¥°¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¥×¥í¥°¥é¥à¤òºÇŬ²½¤¹¤ë¤³¤È¤¬ÂÅÅö¤Ê¤³¤È¤Ë¤Ê¤ë¡£

GCC ¤¬Ê£¿ô¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤ò°·¤¨¤ë¤è¤¦¤ËÀ¸À®¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤¬Ìò¤ËΩ¤Ä¡£

-ggdb
GDB ¤Ç»ÈÍѤ¹¤ë¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢ÍøÍѲÄǽ¤Ê·Á¼°¤Î¤¦¤ÁºÇ¤âɽ¸½ÎϤΤ¢¤ë¤â¤Î¤ò»È¤¦¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¤³¤ì¤Ë¤Ï¡¢²Äǽ¤Ê¸Â¤ê¤Î GDB ¸þ¤±³ÈÄ¥¤â´Þ¤Þ¤ì¤ë¡£
-gstabs
stabs ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð)¤ò GDB ¸þ¤±³ÈÄ¥¤Ê¤·¤ÇÀ¸À®¤¹¤ë¡£¤³¤Î·Á¼°¤¬¡¢¤Û¤È¤ó¤É¤Î BSD ¥·¥¹¥Æ¥à¤Î DBX ¤Ç»È¤ï¤ì¤ë¤â¤Î¤Ç¤¢¤ë¡£MIPS¡¢Alpha¡¢System V Release 4 ¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢DBX ¤ä SDB ¤¬Íý²ò¤Ç¤­¤Ê¤¤·Á¼°¤Î stabs ¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë¡£System V Release 4 ¤Î¥·¥¹¥Æ¥à¤Ç¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤Ë¤ÏGNU assembler ¤¬É¬ÍפǤ¢¤ë¡£
-gstabs+
stabs ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð)¤ò¡¢GNU debugger (GDB) ¤À¤±¤¬Íý²ò¤Ç¤­¤ë GNU ³ÈÄ¥ÉÕ¤­¤ÇÀ¸À®¤¹¤ë¡£¤³¤Î³ÈÄ¥¤ò»È¤¦¤È¡¢Â¾¤Î¥Ç¥Ð¥Ã¥¬¤ÏÍî¤Á¤¿¤ê¡¢¥×¥í¥°¥é¥à¤òÆÉ¤ß¹þ¤á¤Ê¤¯¤Ê¤Ã¤¿¤ê¤¹¤ë¡£
-gcoff
¥Ç¥Ð¥Ã¥°¾ðÊó¤ò COFF ·Á¼°(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð)¤ÇÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢System V Release 4 °ÊÁ°¤Î System V ¾å¤Î SDB ¤Ç»È¤ï¤ì¤Æ¤¤¤¿·Á¼°¤Ç¤¢¤ë¡£
-gxcoff
¥Ç¥Ð¥Ã¥°¾ðÊó¤ò XCOFF ·Á¼°(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð)¤ÇÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢IBM ¤Î RS/6000 ¥·¥¹¥Æ¥à¾å¤Î DBX ¥Ç¥Ð¥Ã¥¬¤Ç»È¤ï¤ì¤Æ¤¤¤ë·Á¼°¤Ç¤¢¤ë¡£
-gxcoff+
¥Ç¥Ð¥Ã¥°¾ðÊó¤ò XCOFF ·Á¼°(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð)¤Ç¡¢GNU ¥Ç¥Ð¥Ã¥¬(GDB) ¤À¤±¤¬Íý²ò¤Ç¤­¤ë GNU ¤Î³ÈÄ¥ÉÕ¤­¤ÇÀ¸À®¤¹¤ë¡£¤³¤Î³ÈÄ¥¤ò»È¤¦¤È¡¢Â¾¤Î¥Ç¥Ð¥Ã¥¬¤ÏÍî¤Á¤¿¤ê¡¢¥×¥í¥°¥é¥à¤òÆÉ¤ß¹þ¤á¤Ê¤¯¤Ê¤Ã¤¿¤ê¤¹¤ë¡£¤Þ¤¿¡¢GNU assembler (GAS) °Ê³°¤Î¥¢¥»¥ó¥Ö¥é¤À¤È¥¨¥é¡¼¤¬½Ð¤Æ¼ºÇÔ¤¹¤ë¡£
-gdwarf
¥Ç¥Ð¥Ã¥°¾ðÊó¤ò DWARF ¤Î¥Ð¡¼¥¸¥ç¥ó1¤Î·Á¼°(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð)¤ÇÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢System V Release 4 ¤Î¥·¥¹¥Æ¥à¾å¤Î SDB ¤Ç»È¤ï¤ì¤Æ¤¤¤ë·Á¼°¤Ç¤¢¤ë¡£
-gdwarf+
¥Ç¥Ð¥Ã¥°¾ðÊó¤ò DWARF ¤Î¥Ð¡¼¥¸¥ç¥ó1¤Î·Á¼°(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð)¤Ç¡¢GNU debugger (GDB) ¤À¤±¤¬Íý²ò¤Ç¤­¤ë GNU ¤Î³ÈÄ¥ÉÕ¤­¤ÇÀ¸À®¤µ¤ì¤ë¡£¤³¤Î³ÈÄ¥¤ò»È¤¦¤È¡¢Â¾¤Î¥Ç¥Ð¥Ã¥¬¤ÏÍî¤Á¤¿¤ê¡¢¥×¥í¥°¥é¥à¤òÆÉ¤ß¹þ¤á¤Ê¤¯¤Ê¤Ã¤¿¤ê¤¹¤ë¡£
-gdwarf-2
¥Ç¥Ð¥Ã¥°¾ðÊó¤ò DWARF ¤Î¥Ð¡¼¥¸¥ç¥ó2¤Î·Á¼°(¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð)¤ÇÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢IRIX 6 ¾å¤Î DBX ¤Ç»È¤ï¤ì¤Æ¤¤¤ë·Á¼°¤Ç¤¢¤ë¡£
-glevel
-ggdblevel
-gstabslevel
-gcofflevel
-gxcofflevel
-gdwarflevel
-gdwarf-2level
¥Ç¥Ð¥Ã¥°¾ðÊó¤ò½Ð¤¹¤³¤È¤òÍ׵ᤷ¡¢¤«¤Ä¡¢ level ¤Ç¤É¤ì¤°¤é¤¤¤Î¾ðÊó¤ò½Ð¤¹¤«¤ò»ØÄꤹ¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Î¥ì¥Ù¥ë¤Ï 2 ¤Ç¤¢¤ë¡£

¥ì¥Ù¥ë 1 ¤Ï¡¢¥Ç¥Ð¥Ã¥°¤¹¤ëͽÄê¤Î¤Ê¤¤¥×¥í¥°¥é¥à¤Î°ìÉô¤Î¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤¬¼è¤ì¤ë¤°¤é¤¤¤Î¡¢ºÇ¾®¸Â¤Î¾ðÊó¤òÀ¸À®¤¹¤ë¡£¤³¤Î¾ðÊó¤Ë¤Ï¡¢´Ø¿ô¤È³°ÉôÊÑ¿ô¤Îµ­½Ò¤¬´Þ¤Þ¤ì¤ë¤¬¡¢¥í¡¼¥«¥ëÊÑ¿ô¤È¹ÔÈÖ¹æ¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Ï´Þ¤Þ¤ì¤Ê¤¤¡£

¥ì¥Ù¥ë 3 ¤Ï;ʬ¤Î¾ðÊó¤ò´Þ¤á¤ë¡£Î㤨¤Ð¡¢¥×¥í¥°¥é¥à¤Ë¸ºß¤¹¤ëÁ´¤Æ¤Î¥Þ¥¯¥íÄêµÁ¤Ê¤É¤¬´Þ¤Þ¤ì¤ë¡£¥Ç¥Ð¥Ã¥¬¤ÎÃæ¤Ë¤Ï¡¢-g3 ¤ò»È¤Ã¤¿¾ì¹ç¤Ë¥Þ¥¯¥í¤ÎŸ³«¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤â¤Î¤â¤¢¤ë¡£

-p
prof ¥×¥í¥°¥é¥à¤Ë¤è¤ë²òÀϤËŬ¤·¤¿¥×¥í¥Õ¥¡¥¤¥ë¾ðÊó¤ò½ñ¤­½Ð¤¹Í¾Ê¬¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ç¡¼¥¿¤òɬÍפȤ¹¤ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤Þ¤¿¡¢¥ê¥ó¥¯»þ¤Ë¤â»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-pg
gprof ¥×¥í¥°¥é¥à¤Ë¤è¤ë²òÀϤËŬ¤·¤¿¥×¥í¥Õ¥¡¥¤¥ë¾ðÊó¤ò½ñ¤­½Ð¤¹Í¾Ê¬¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ç¡¼¥¿¤òɬÍפȤ¹¤ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤Þ¤¿¡¢¥ê¥ó¥¯»þ¤Ë¤â»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-a
´ðËÜ¥Ö¥í¥Ã¥¯¤Ë´Ø¤¹¤ë¥×¥í¥Õ¥¡¥¤¥ë¾ðÊó¤ò½ñ¤­½Ð¤¹Í¾Ê¬¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥³¡¼¥É¤Ï¡¢³Æ´ðËÜ¥Ö¥í¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì¤¿²ó¿ô¡¢´ðËÜ¥Ö¥í¥Ã¥¯¤Î³«»Ï¥¢¥É¥ì¥¹¡¢¤½¤Î´ðËÜ¥Ö¥í¥Ã¥¯¤ò´Þ¤à´Ø¿ô̾¤òµ­Ï¿¤¹¤ë¡£-g ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢´ðËÜ¥Ö¥í¥Ã¥¯¤Î³«»ÏÅÀ¤Î¹ÔÈÖ¹æ¤È¥Õ¥¡¥¤¥ë̾¤âµ­Ï¿¤µ¤ì¤ë¡£¥Þ¥·¥óµ­½Ò¤Ç¾å½ñ¤­¤µ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ï¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë bb.out ¤ËÄɲ乤뤳¤È¤Ç¤¢¤ë¡£

¤³¤Î¥Ç¡¼¥¿¤Ï¡¢tcov ¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç²òÀϤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤À¤¬¡¢¤³¤Î¥Ç¡¼¥¿¤Î·Á¼°¤Ï tcov ¤¬ÁÛÄꤷ¤Æ¤¤¤ë¤â¤Î¤Ç¤Ê¤¤¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£¾­ÍèŪ¤Ë¤Ï GNU gprof ¤ò¡¢¤³¤Î¥Ç¡¼¥¿¤ò½èÍý¤Ç¤­¤ë¤è¤¦¤Ë³ÈÄ¥¤¹¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£

-Q
³Æ´Ø¿ô¤Î¥³¥ó¥Ñ¥¤¥ë¤¬½ª¤ï¤ëËè¤Ë¤½¤Î´Ø¿ô̾¤ò½ÐÎϤ·¡¢³Æ¥Ñ¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤Ë¤½¤Î¥Ñ¥¹¤Ë¤Ä¤¤¤Æ¤ÎÅý·×¾ðÊó¤ò½ÐÎϤ¹¤ë¡£
-ax
´ðËÜ¥Ö¥í¥Ã¥¯¥×¥í¥Õ¥¡¥¤¥ëÍѤÎ;ʬ¤Ê¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¼Â¹Ô·Á¼°¤ò¼Â¹Ô¤¹¤ë¤È¡¢-a ¤¬»ØÄꤵ¤ì¤¿¤È¤­¤ËÀ¸À®¤µ¤ì¤ë¤â¤Î¤Î¥¹¡¼¥Ñ¡¼¥»¥Ã¥È¤¬½ÐÎϤµ¤ì¤ë¡£½ÐÎϤËÉÕ¤±²Ã¤ï¤ë¤Î¤Ï¡¢¥¸¥ã¥ó¥×¤¬µ¯¤­¤¿¤È¤³¤í¤Î´ðËÜ¥Ö¥í¥Ã¥¯¤Î¥¸¥ã¥ó¥×¸µ¤È¥¸¥ã¥ó¥×Àè¤Î¥¢¥É¥ì¥¹¤È¡¢¥¸¥ã¥ó¥×¤Î¼Â¹Ô²ó¿ô¡¢¤½¤ì¤Ë¥ª¥×¥·¥ç¥ó¤Ç¼Â¹Ô¤µ¤ì¤ë´ðËÜ¥Ö¥í¥Ã¥¯¤Î´°Á´¤ÊÎó¤Ç¤¢¤ë¡£½ÐÎϤϡ¢¥Õ¥¡¥¤¥ë bb.out ¤ËÄɲ䵤ì¤ë¡£

ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¯¤Æ¤â°Û¤Ê¤ë¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤ÎÌ̤ò»î¤¹¤³¤È¤¬¤Ç¤­¤ë¡£¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë bb.in ¤«¤é´Ø¿ô̾¤Î¥ê¥¹¥È¤òÆÉ¤ß¹þ¤à¡£¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¡¢¥ê¥¹¥È¤Ë¤¢¤ë´Ø¿ô¤ËÆþ¤Ã¤¿»þÅÀ¤Ç³«»Ï¤·¡¢¤½¤Î´Ø¿ô¤Î¼Â¹Ô¤¬½ª¤ï¤Ã¤¿ÅÀ¤Ç½ªÎ»¤¹¤ë¡£¥×¥í¥Õ¥¡¥ê¥ó¥°¤«¤é´Ø¿ô¤ò½ü³°¤¹¤ë¾ì¹ç¤Ï¡¢¤½¤Î̾Á°¤ÎÁ°¤Ë `-' ¤òÉÕ¤±¤ë¡£´Ø¿ô̾¤¬°ì°ÕŪ¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢/path/filename.d:functionname ¤È¤¤¤¦·Á¼°¤Ç½ñ¤¯¤³¤È¤Ç¶èÊ̤Ǥ­¤ë¡£¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤Î¼Â¹Ô¤Ë¤è¤ê¡¢ÍøÍѲÄǽ¤Ê¥Ñ¥¹Ì¾¤È¥Õ¥¡¥¤¥ë̾¤¬¥Õ¥¡¥¤¥ë bb.out ¤Ë½ñ¤­½Ð¤µ¤ì¤ë¡£

´ö¤Ä¤«¤Î´Ø¿ô̾¤Ë¤ÏÆÃÊ̤ʰÕÌ£¤¬¤¢¤ë¡£

__bb_jumps__
¥¸¥ã¥ó¥×¸µ¡¢¥¸¥ã¥ó¥×Àè¡¢¥¸¥ã¥ó¥×¤ÎÉÑÅÙ¤ò¥Õ¥¡¥¤¥ë bb.out ¤Ë½ñ¤­½Ð¤¹¡£
__bb_hidecall__
ÉÑÅ٤η׿ô¤«¤é´Ø¿ô¸Æ¤Ó½Ð¤·¤ò½ü³°¤¹¤ë¡£
__bb_showret__
ÉÑÅ٤η׿ô¤Ë´Ø¿ô¤«¤é¤ÎÌá¤ê¤ò´Þ¤á¤ë¡£
__bb_trace__
¼Â¹Ô¤µ¤ì¤¿´ðËÜ¥Ö¥í¥Ã¥¯¤ÎÎó¤ò¥Õ¥¡¥¤¥ë bbtrace.gz ¤Ë½ñ¤­½Ð¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï gzip ¥×¥í¥°¥é¥à¤ò»È¤Ã¤Æ°µ½Ì¤µ¤ì¤ë¤Î¤Ç¡¢gzip ¤¬ PATH ¤ËÆþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£popen ´Ø¿ô¤Î¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï bbtrace ¤È¤¤¤¦Ì¾Á°¤Ë¤Ê¤ê¡¢°µ½Ì¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¤¡£¤½¤¦¤¤¤¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤Û¤ó¤Î¿ôÉäΥץí¥Õ¥¡¥¤¥ê¥ó¥°¤Ç¤â¡¢Èó¾ï¤ËµðÂç¤Ê¥Õ¥¡¥¤¥ë¤¬¤Ç¤­¤ë¡£ Ãí°Õ: __bb_hidecall__ ¤È __bb_showret__ ¤Ïbbtrace.gz ¤Ë½ñ¤­½Ð¤µ¤ì¤ëÎó¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤¡£

°Ê²¼¤Ë¡¢¥Õ¥¡¥¤¥ë bb.in ¤Ç°Û¤Ê¤ë¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥Ñ¥é¥á¡¼¥¿¤ò»È¤Ã¤¿Ã»¤¤Îã¤ò¼¨¤¹¡£´Ø¿ô foo ¤Ë¤Ï¡¢´ðËÜ¥Ö¥í¥Ã¥¯ 1 ¤È 2 ¤¬¤¢¤ê¡¢´Ø¿ô main ¤Î¥Ö¥í¥Ã¥¯ 3 ¤«¤éÆó²ó¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¤¹¤ë¡£¤½¤Î¸Æ¤Ó½Ð¤·¤Î¸å¡¢¥Ö¥í¥Ã¥¯ 3 ¤ÏÀ©¸æ¤ò main ¤Î¥Ö¥í¥Ã¥¯ 4 ¤Ë°Ü¤¹¡£

__bb_trace__ ¤È main ¤ò¥Õ¥¡¥¤¥ë bb.in ¤ËÆþ¤ì¤Æ¤ª¤¯¤È¡¢0 3 1 2 1 2 4 ¤È¤¤¤¦¥Ö¥í¥Ã¥¯Î󤬥ե¡¥¤¥ë bbtrace.gz ¤Ë½ñ¤­½Ð¤µ¤ì¤ë¡£¥Ö¥í¥Ã¥¯ 2 ¤«¤é¥Ö¥í¥Ã¥¯ 3 ¤ØÌá¤ë¤Î¤Ï¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤³¤ì¤Ï¡¢¥Ö¥í¥Ã¥¯¤ÎÃæ¤Î¤¢¤ëÅÀ¤ØÌá¤ë¤¿¤á¤ÇºÇ¾å°Ì¤ËÌá¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£¥Ö¥í¥Ã¥¯¥¢¥É¥ì¥¹ 0 ¤Ï¾ï¤Ë¡¢À©¸æ¤¬Â¬Äꤷ¤¿´Ø¿ô¤Î¤É¤³¤«³°Â¦¤«¤é¡¢¥È¥ì¡¼¥¹¤Ë°Ü¤Ã¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£-foo ¤ò bb.in ¤ËÆþ¤ì¤ë¤È¡¢´Ø¿ô foo ¤Î¥Ö¥í¥Ã¥¯¤Ï¥È¥ì¡¼¥¹¤«¤é½ü¤«¤ì¤ë¤Î¤Ç¡¢0 3 4 ¤À¤±¤¬»Ä¤ë¡£

__bb_jumps__ ¤È main ¤ò¥Õ¥¡¥¤¥ë bb.in ¤ËÆþ¤ì¤ë¤È¡¢¥¸¥ã¥ó¥×¤ÎÉÑÅÙ¤¬¥Õ¥¡¥¤¥ë bb.out ¤Ë½ñ¤­½Ð¤µ¤ì¤ë¡£ÉÑÅ٤ϡ¢¥Ö¥í¥Ã¥¯¤Î¥È¥ì¡¼¥¹¤ò¹½À®¤·¡¢¥È¥ì¡¼¥¹Ãæ¤ÎÎÙ¤ê¹ç¤ï¤»¤Î¥Ö¥í¥Ã¥¯¤ÎÂÐËè¤Ë¥«¥¦¥ó¥¿¤ò¥¤¥ó¥¯¥ê¥á¥ó¥È¤¹¤ë¤³¤È¤ÇÆÀ¤é¤ì¤ë¡£¥È¥ì¡¼¥¹ 0 3 1 2 1 2 4 ¤Ï°Ê²¼¤ÎÎó¤òɽ¼¨¤¹¤ë¡£

Jump from block 0x0 to block 0x3 executed 1 time(s)
Jump from block 0x3 to block 0x1 executed 1 time(s)
Jump from block 0x1 to block 0x2 executed 2 time(s)
Jump from block 0x2 to block 0x1 executed 1 time(s)
Jump from block 0x2 to block 0x4 executed 1 time(s)

__bb_hidecall__ ¤òÃÖ¤¯¤È¡¢¸Æ½Ð¤·Ì¿Îá¤Ë¤è¤ëÀ©¸æ¤Î°Üư¤Ï¥È¥ì¡¼¥¹¤«¤é¼è¤ê½ü¤«¤ì¤ë¡£¤¹¤Ê¤ï¤Á¡¢¥È¥ì¡¼¥¹¤Ï»°¤Ä¤ÎÉôʬ¤Ëʬ¤±¤é¤ì¤ë¡£0 3 4 ¤È 0 1 2¡¢¤½¤ì¤Ë 0 1 2 ¤Ç¤¢¤ë¡£__bb_showret__ ¤òÃÖ¤¯¤È¡¢¥ê¥¿¡¼¥óÌ¿Îá¤Ë¤è¤ëÀ©¸æ¤Î°Üư¤¬¥È¥ì¡¼¥¹¤ËÄɲ䵤ì¤ë¡£¥È¥ì¡¼¥¹¤Ï¡¢0 3 1 2 3 1 2 3 4 ¤Ë¤Ê¤ë¡£¤³¤Î¥È¥ì¡¼¥¹¤Ï¡¢bbtrace.gz ¤Ë½ñ¤­½Ð¤µ¤ì¤ëÎó¤È¤ÏƱ¤¸¤Ç¤Ê¤¤¤³¤È¤ËÃí°Õ¡£¤³¤ì¤Ï¡¢¥¸¥ã¥ó¥×¤ÎÉÑÅÙ¤ò¿ô¤¨¤ë¤Î¤Ë¤·¤«»È¤ï¤ì¤Ê¤¤¡£

-fprofile-arcs
¥³¥ó¥Ñ¥¤¥ëÃæ¤Ë ¸Ì(arc) ¤òÁàºî¤¹¤ë¡£¥×¥í¥°¥é¥à¤Î´Ø¿ôËè¤Ë GCC ¤Ï¡¢°ì¸Ä¤Î¥×¥í¥°¥é¥à¤Îή¤ì¤Î¥°¥é¥Õ¤òºî¤ê¡¢¤½¤Î¥°¥é¥Õ¤Î¥¹¥Ñ¥Ë¥ó¥°¡¦¥Ä¥ê¡¼¤òõ¤¹¡£¥¹¥Ñ¥Ë¥ó¥°¡¦¥Ä¥ê¡¼¾å¤Ë¤Ê¤¤¸Ì¤À¤±¤¬Áàºî¤µ¤ì¤ë¡£GCC ¤Ï¡¢¤½¤¦¤¤¤¦¸Ì¤¬¼Â¹Ô¤µ¤ì¤ë²ó¿ô¤ò¿ô¤¨¤ë¥³¡¼¥É¤òÄɲ乤롣¤¢¤ë¸Ì¤¬¡¢¤¢¤ë¥Ö¥í¥Ã¥¯¤ËÂФ¹¤ë½Ð¸ý¤Ë¤·¤«¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤«¡¢¤¢¤ë¤¤¤ÏÆþ¤ê¸ý¤Ë¤·¤«¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢Áàºî¤ò¹Ô¤Ê¤¦¥³¡¼¥É¤ò¤½¤Î¥Ö¥í¥Ã¥¯¤ËÄɲ乤뤳¤È¤¬²Äǽ¤Ç¤¢¤ë¡£¤½¤Î¾¤Î¾ì¹ç¤Ï¡¢¿·¤·¤¤´ðËÜ¥Ö¥í¥Ã¥¯¤òºî¤ê¡¢Áàºî¤ò¹Ô¤Ê¤¦¥³¡¼¥É¤òÊÝ»ý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¥×¥í¥°¥é¥àÃæ¤Î¤¢¤é¤æ¤ë¸Ì¤¬Áàºî¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥×¥í¥°¥é¥à¤Ï¡¢-a ¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥×¥í¥°¥é¥à¤è¤ê¤Ï¹â®¤Ç¤¢¤ë¡£-a ¤òÉÕ¤±¤ë¤È¡¢¥×¥í¥°¥é¥àÃæ¤Î¤¢¤é¤æ¤ë´ðËÜ¥Ö¥í¥Ã¥¯¤ËÁàºî¥³¡¼¥É¤òÄɲ乤롣¥È¥ì¡¼¥É¥ª¥Õ¤¬¤¢¤ë¡£gcov ¤Ï¡¢Á´¤Æ¤Îʬ´ô¤Ë¤Ä¤¤¤Æ¼Â¹Ô²ó¿ô¤ò¿ô¤¨¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢Áàºî¤µ¤ì¤¿Ê¬´ô¤Î¼Â¹Ô²ó¿ô¤«¤é»Ï¤á¤Æ¡¢¥×¥í¥°¥é¥à¤Îή¤ì¤Î¥°¥é¥Õ¤Ë¤Ä¤¤¤Æ¡¢Á´¥°¥é¥Õ¤¬²ò·è¤¹¤ë¤Þ¤Ç·«¤êÊÖ¤·¹Ô¤Ê¤¦¡£¤³¤Î¤¿¤á¡¢gcov ¤Ï¡¢-a ¤ÇÆÀ¤é¤ì¤ë¾ðÊó¤ò»È¤¦¥×¥í¥°¥é¥à¤è¤ê¤Ï¡¢¤¤¤¯¤é¤«ÃÙ¤¯¤Ê¤ë¡£

-fprofile-arcs ¤ò»ØÄꤹ¤ë¤È¡¢Ê¬´ô³ÎΨ¤ò¸«ÀѤâ¤Ã¤¿¤ê¡¢´ðËÜ¥Ö¥í¥Ã¥¯¤Î¼Â¹Ô²ó¿ô¤ò·×»»¤¹¤ë¤³¤È¤â²Äǽ¤Ë¤Ê¤ë¡£°ìÈ̤ˡ¢´ðËÜ¥Ö¥í¥Ã¥¯¤Î¼Â¹Ô²ó¿ô¤À¤±¤Ç¤Ï¡¢Á´¤Æ¤Îʬ´ô³ÎΨ¤ò¸«ÀѤâ¤ë¤³¤È¤¬½ÐÍè¤ë¤À¤±¤Î¾ðÊó¤ÏÆÀ¤é¤ì¤Ê¤¤¡£¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥×¥í¥°¥é¥à¤¬½ªÎ»¤¹¤ë¤È¤­¡¢¸Ì¤Î¼Â¹Ô²ó¿ô¤ò sourcename.da ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤Ë¥»¡¼¥Ö¤¹¤ë¡£¥ª¥×¥·¥ç¥ó -fbranch-probabilities (see Options that Control Optimization) ¤ò»ØÄꤷ¤ÆºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¡¢¸«ÀѤâ¤Ã¤¿Ê¬´ô³ÎΨ¤ò»È¤Ã¤ÆºÇŬ²½¤ò¹Ô¤Ê¤¦¡£

-ftest-coverage
¥³¡¼¥É¥«¥Ð¥ì¡¼¥¸¥×¥í¥°¥é¥à gcov ÍѤΥǡ¼¥¿¥Õ¥¡¥¤¥ë¤òºî¤ë(see gcov: a GCC Test Coverage Program). ¤³¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë̾¤Ï¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë̾¤Ç»Ï¤Þ¤ë¡£
sourcename.bb
´ðËÜ¥Ö¥í¥Ã¥¯¤È¹ÔÈÖ¹æ¤ÎÂбþɽ¤Ç¤¢¤ë¡£gcov ¤¬¹ÔÈÖ¹æËè¤Ë´ðËÜ¥Ö¥í¥Ã¥¯¤Î¼Â¹Ô²ó¿ô¤òÂбþ¤µ¤»¤ë¤Î¤Ë»È¤¦¡£
sourcename.bbg
¥×¥í¥°¥é¥à¤Î¥Õ¥í¡¼¥°¥é¥Õ¤Ë¤ª¤±¤ë¡¢Á´¤Æ¤Î¸Ì¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£¤³¤ì¤Ë¤è¤ê gcov ¤¬¥×¥í¥°¥é¥à¤Î¥Õ¥í¡¼¥°¥é¥Õ¤òºÆ¹½ÃÛ¤¹¤ë¤³¤È¤Ç¡¢sourcename.da ¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¾ðÊ󤫤顢Á´¤Æ¤Î´ðËÜ¥Ö¥í¥Ã¥¯¤È¸Ì¤Î¼Â¹Ô²ó¿ô¤ò·×»»¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£(sourcename.da ¤Ï¡¢-fprofile-arcs ¤Î½ÐÎϤǤ¢¤ë¡£)

-Q
³Æ´Ø¿ô¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¤È¤­¤Ë¤½¤Î´Ø¿ô̾¤ò½ÐÎϤ·¡¢¥³¥ó¥Ñ¥¤¥ë¤Î³Æ¥Ñ¥¹¤Ë¤Ä¤¤¤Æ¡¢¤½¤ì¤¬½ª¤ï¤Ã¤¿¤È¤­¤ËÅý·×¾ðÊó¤ò½ÐÎϤ¹¤ë¡£
-dletters
letters ¤Ç»ØÄꤵ¤ì¤ë¥³¥ó¥Ñ¥¤¥ë²áÄø¤Î¥Ç¥Ð¥Ã¥°½ÐÎϤò¹Ô¤Ê¤¦¡£¤³¤ì¤Ï GCC ¤Î¥Ç¥Ð¥Ã¥°¤Ë»È¤ï¤ì¤ë¡£¥Ç¥Ð¥Ã¥°½ÐÎϤΥե¡¥¤¥ë̾¤Ï¡¢¤Û¤È¤ó¤É¤¬¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë̾¤Ë¤¢¤ëñ¸ì¤òÄɲ䷤ƺî¤é¤ì¤ë(Î㤨¤Ð¡¢foo.c.rtl ¤ä foo.c.jump Åù)¡£°Ê²¼¤Ë letters ¤Ë»ØÄê¤Ç¤­¤ëʸ»ú¤È¤½¤Î°ÕÌ£¤ò¼¨¤¹¡£
b
ʬ´ô³ÎΨ·×»»¸å¤Ë¡¢file.bp ¤Ë½ÐÎϤ¹¤ë¡£
c
Ì¿ÎáÁȹ礻¸å¤Ë¡¢¥Õ¥¡¥¤¥ë file.combine ¤Ë¥À¥ó¥×¤¹¤ë¡£
d
ÃÙ±äʬ´ô¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¸å¤Ë¡¢file.dbr ¤Ë¥À¥ó¥×¤¹¤ë¡£
D
Ä̾ï¤Î½ÐÎϤ˲䨤ơ¢Á´¤Æ¤Î¥Þ¥¯¥íÄêµÁ¤òÁ°½èÍý¤ÎºÇ¸å¤Ë¥À¥ó¥×¤¹¤ë¡£
r
RTL À¸À®¸å¡¢file.rtl ¤Ë¥À¥ó¥×¤¹¤ë¡£
j
ºÇ½é¤Î¥¸¥ã¥ó¥×ºÇŬ²½¸å¤Ë¡¢file.jump ¤Ë¥À¥ó¥×¤¹¤ë¡£
F
ADDRESSOF ¤Îºï½ü¸å¤Ë¡¢file.addressof ¤Ë¥À¥ó¥×¤¹¤ë¡£
f
¥Õ¥í¡¼²òÀϸå¤Ë¡¢file.flow ¤Ë¥À¥ó¥×¤¹¤ë¡£
g
¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿³äÅö¸å¤Ë¡¢file.greg ¤Ë¥À¥ó¥×¤¹¤ë¡£
G
GCSE ¸å¤Ë¡¢file.gcse ¤Ë¥À¥ó¥×¤¹¤ë¡£
j
ºÇ½é¤Î¥¸¥ã¥ó¥×ºÇŬ²½¸å¤Ë¡¢file.jump ¤Ë¥À¥ó¥×¤¹¤ë¡£
J
ºÇ¸å¤Î¥¸¥ã¥ó¥×ºÇŬ²½¸å¤Ë¡¢file.jump2 ¤Ë¥À¥ó¥×¤¹¤ë¡£
k
¥ì¥¸¥¹¥¿¤«¤é¥¹¥¿¥Ã¥¯¤Ø¤ÎÊÑ´¹¸å¤Ë¡¢file.stack ¤Ë¥À¥ó¥×¤¹¤ë¡£
l
¥í¡¼¥«¥ë¥ì¥¸¥¹¥¿³äÅö¸å¤Ë¡¢file.lreg ¤Ë¥À¥ó¥×¤¹¤ë¡£
L
¥ë¡¼¥×ºÇŬ²½¸å¤Ë¡¢file.loop ¤Ë¥À¥ó¥×¤¹¤ë¡£
M
µ¡¼ï°Í¸¤ÎºÆ¹½À®¥Ñ¥¹¸å¤Ë¡¢file.mach ¤Ë¥À¥ó¥×¤¹¤ë¡£
N
¥ì¥¸¥¹¥¿°Üư¥Ñ¥¹¸å¤Ë¡¢file.regmove ¤Ë¥À¥ó¥×¤¹¤ë¡£
r
RTL À¸À®¸å¤Ë¡¢file.rtl ¤Ë¥À¥ó¥×¤¹¤ë¡£
R
Æó²óÌܤÎÌ¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ñ¥¹¸å¤Ë¡¢file.sched2 ¤Ë¥À¥ó¥×¤¹¤ë¡£
s
CSE(»þ¡¹ CSE ¤Ë³¤¯¥¸¥ã¥ó¥×ºÇŬ²½¤ò´Þ¤à)¸å¤Ë¡¢file.cse ¤Ë¥À¥ó¥×¤¹¤ë¡£
S
°ì²óÌܤÎÌ¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ñ¥¹¸å¤Ë¡¢file.sched ¤Ë¥À¥ó¥×¤¹¤ë¡£
t
Æó²óÌܤÎCSE(»þ¡¹ CSE ¤Ë³¤¯¥¸¥ã¥ó¥×ºÇŬ²½¤ò´Þ¤à)¸å¤Ë¡¢file.cse2 ¤Ë¥À¥ó¥×¤¹¤ë¡£
a
¾åµ­¤Î¥À¥ó¥×¤òÁ´¤ÆÀ¸À®¤¹¤ë¡£
m
¥á¥â¥ê»ÈÍѾõ¶·¤ÎÅý·×¤ò¡¢ºÇ¸å¤Ëɸ½à½ÐÎϤ˽ÐÎϤ¹¤ë¡£
p
¥¢¥»¥ó¥Ö¥é½ÐÎϤˡ¢¤É¤Î¥Ñ¥¿¡¼¥ó¤ÈÁªÂò»è¤¬»È¤ï¤ì¤¿¤«¤ò¼¨¤¹¥³¥á¥ó¥È¤ÇÃí¼á¤òÉÕ¤±¤ë¡£³ÆÌ¿Îá¤ÎŤµ¤âɽ¼¨¤µ¤ì¤ë¡£
x
´Ø¿ô¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢Ã±¤Ë RTL ¤òÀ¸À®¤¹¤ë¡£ÉáÄÌ¡¢r ¤È°ì½ï¤Ë»È¤¦¡£
y
¹½Ê¸²òÀÏÃæ¤Ë¥Ç¥Ð¥Ã¥°¾ðÊó¤òɸ½à¥¨¥é¡¼½ÐÎϤ˥À¥ó¥×¤¹¤ë¡£
A
¥¢¥»¥ó¥Ö¥é½ÐÎϤ˿§¡¹¤Ê¥Ç¥Ð¥Ã¥°¾ðÊó¤ÇÃí¼á¤òÉÕ¤±¤ë¡£

-fdump-unnumbered
¥Ç¥Ð¥Ã¥°¥À¥ó¥×¤ò½ÐÎϤ¹¤ë¤È¤­(¾å¤Î -d ¥ª¥×¥·¥ç¥ó¤ò»²¾È¤Î¤³¤È)¡¢Ì¿ÎáÈÖ¹æ¤È¹ÔÈÖ¹æ¥Î¡¼¥È¤ò½ÐÎϤ·¤Ê¤¤¡£¤³¤ì¤Ë¤è¤ê¡¢Ê̤Υª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æµ¯Æ°¤·¤¿¥³¥ó¥Ñ¥¤¥ë¤Î¥Ç¥Ð¥Ã¥°¥À¥ó¥×¤Ë diff ¤ò»È¤¤¤ä¤¹¤¯¤Ê¤ë¡£ÆÃ¤Ë -g ¤Î¤¢¤ê¤Ê¤·¤ÇÍ­¸ú¤Ç¤¢¤ë¡£
-fpretend-float
¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¼Â¹Ô¤¹¤ëºÝ¤Ë¡¢¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤¬¥Û¥¹¥Èµ¡¼ï¤ÈƱ¤¸ÉâÆ°¾®¿ôÅÀ·Á¼°¤ò»È¤Ã¤Æ¤¤¤ë¿¶¤ê¤ò¤µ¤»¤ë¡£¤³¤¦¤¹¤ë¤È¡¢¼ÂºÝ¤ÎÉâÆ°¾®¿ôÅÀÄê¿ô¤È¤·¤Æ¤ÏÀµ¤·¤¯¤Ê¤¤½ÐÎϤò¹Ô¤Ê¤¦¤¬¡¢¼ÂºÝ¤ÎÌ¿ÎáÎó¤Ï¡¢GCC ¤ò¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç¼Â¹Ô¤µ¤»¤¿¤È¤­À¸À®¤¹¤ëÌ¿ÎáÎó¤È¤ª¤½¤é¤¯Æ±¤¸¤Ç¤¢¤ë¡£
-save-temps
Ä̾ï¡Ö°ì»þۡפÊÃæ´Ö¥Õ¥¡¥¤¥ë¤òÊݸ¤¹¤ë¡£Ãæ´Ö¥Õ¥¡¥¤¥ë¤ò¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤­¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë̾¤Ë´ð¤Å¤¤¤¿Ì¾Á°¤òÉÕ¤±¤ë¡£¤Ä¤Þ¤ê¡¢foo.c ¤ò -c -save-temps ¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢foo.o ¤Î¾¤Ë¡¢foo.i ¤È foo.s ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤Ç¤­¤ë¡£
-print-file-name=library
¥ê¥ó¥¯»þ¤Ë»È¤ï¤ì¤ë¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë library ¤ÎÀäÂХѥ¹Ì¾¤ò½ÐÎϤ·¡¢Â¾¤Ë¤Ï²¿¤â¹Ô¤Ê¤ï¤Ê¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï¥³¥ó¥Ñ¥¤¥ë¤ä¥ê¥ó¥¯¤Ï°ìÀڹԤʤï¤Ê¤¤¡£Ã±¤Ë¥Õ¥¡¥¤¥ë̾¤ò½ÐÎϤ¹¤ë¤À¤±¤Ç¤¢¤ë¡£
-print-prog-name=program
-print-file-name ¤È»÷¤Æ¤¤¤Æ¡¢cpp ¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ò¸¡º÷¤¹¤ë¡£
-print-libgcc-file-name
-print-file-name=libgcc.a ¤ÈƱ¤¸¡£

¤³¤ì¤Ï¡¢-nostdlib ¤ä -nodefaultlibs ¤ò»È¤¤¤¿¤¤¤¬¡¢libgc.a ¤Ï¥ê¥ó¥¯¤·¤¿¤¤¤È¤¤¤¦¤È¤­¤ËÊØÍø¤Ç¤¢¤ë¡£¤½¤ì¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ì¤ÐÎɤ¤¡£

gcc -nostdlib files... `gcc -print-libgcc-file-name`

-print-search-dirs
¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç»ØÄꤷ¤¿¥¤¥ó¥¹¥È¡¼¥ëÀè¥Ç¥£¥ì¥¯¥È¥ê̾¤È¡¢GCC ¤¬¥×¥í¥°¥é¥à¤È¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤òɽ¼¨¤¹¤ë¡£¤½¤Î¾¤Î»ö¤Ï²¿¤â¹Ô¤Ê¤ï¤Ê¤¤¡£

¤³¤ì¤Ï gcc ¤¬ installation problem, cannot exec cpp: No such file or directory ¤È¤¤¤¦¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¤¿¤È¤­¤ËÌò¤ËΩ¤Ä¡£¤³¤Î¥¨¥é¡¼¤¬½Ð¤¿¤È¤­¤Ë¤Ï¡¢cpp ¤È¤½¤Î¾¤Î¥³¥ó¥Ñ¥¤¥é¤Î¥µ¥Ö¥×¥í¥°¥é¥à¤ògcc ¤¬¤¢¤ë¤ÈÁÛÄꤷ¤Æ¤¤¤ë¾ì½ê¤ËÃÖ¤¯¤«¡¢¤¢¤ë¤¤¤Ï¤½¤ì¤é¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò´Ä¶­ÊÑ¿ô GCC_EXEC_PREFIX ¤Ç»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£¤³¤³¤Ç»ØÄꤹ¤ë¥Ç¥£¥ì¥¯¥È¥ê̾¤Ë¤ÏºÇ¸å¤Ë '/' ¤òÉÕ¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤ÆÍߤ·¤¤¡£See Environment Variables.


Node:Optimize Options, Next:, Previous:Debugging Options, Up:Invoking GCC

ºÇŬ²½¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï¿§¡¹¤Ê¼ïÎà¤ÎºÇŬ²½¤òÀ©¸æ¤¹¤ë¡£

-O
-O1
ºÇŬ²½¤ò¹Ô¤Ê¤¦¡£ºÇŬ²½¤ò¹Ô¤Ê¤¦¥³¥ó¥Ñ¥¤¥ë¤Ë¤Ï´ö¤é¤«Í¾·×¤Ë»þ´Ö¤¬¤«¤«¤ê¡¢Â礭¤Ê´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¤¿¤¯¤µ¤ó¤Î¥á¥â¥ê¤ò;·×¤Ë»È¤¦¡£

-O ¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤ÎÌÜɸ¤Ï¥³¥ó¥Ñ¥¤¥ë¤Î¥³¥¹¥È¤ò¾®¤µ¤¯¤¹¤ë¤³¤È¤È¥Ç¥Ð¥Ã¥°¤¬´üÂԤɤª¤ê¤Î·ë²Ì¤Ë¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£³ÆÊ¸¤ÏÆÈΩ¤·¤Æ¤¤¤ë¡£Ê¸¤Èʸ¤Î´Ö¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Æ¥×¥í¥°¥é¥à¤ò»ß¤á¤¿¤È¤­¡¢¤É¤ÎÊÑ¿ô¤Ë¤â¿·¤¿¤ÊÃͤòÂåÆþ¤Ç¤­¤ë¤·¡¢¥×¥í¥°¥é¥à¥«¥¦¥ó¥¿¤òÊѹ¹¤·¤Æ¡¢¤½¤Î´Ø¿ôÆâ¤Î¾¤Î¤É¤Îʸ¤Ë¤âÈô¤Ð¤¹¤³¤È¤¬¤Ç¤­¡¢¤½¤·¤Æ¥½¡¼¥¹¥³¡¼¥É¤«¤é´üÂԤǤ­¤ë·ë²Ì¤ÈÁ´¤¯Æ±¤¸¤â¤Î¤¬ÆÀ¤é¤ì¤ë¡£

-O ¤ò»ØÄꤷ¤Ê¤¤¤È¡¢register Àë¸À¤·¤¿ÊÑ¿ô¤·¤«¥ì¥¸¥¹¥¿¤Ë³ä¤êÅö¤Æ¤Ê¤¤¡£¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤Î¥³¡¼¥É¤Ï¡¢-O ¤Ê¤·¤Î PCC ¤Çºî¤é¤ì¤ë¤è¤ê¤â¤ä¤ä°­¤¤¡£

-O ¤ò»ØÄꤹ¤ë¤È¡¢¥³¡¼¥É¥µ¥¤¥º¤È¼Â¹Ô»þ´Ö¤ò¾®¤µ¤¯¤·¤è¤¦¤È¤¹¤ë¡£

-O ¤ò»ØÄꤹ¤ë¤È¡¢Á´µ¡¼ï¤Ç -fthread-jumps ¤È-fdefer-pop ¤òÍ­¸ú¤Ë¤¹¤ë¡£Ãٱ䥹¥í¥Ã¥È¤Î¤¢¤ëµ¡¼ï¤Ç¤Ï-fdelayed-branch ¤ò¥ª¥ó¤Ë¤·¡¢¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤Ê¤·¤Ç¤â¥Ç¥Ð¥Ã¥°¤ò¥µ¥Ý¡¼¥È¤Ç¤­¤ëµ¡¼ï¤Ç¤Ï -fomit-frame-pointer ¤ò¥ª¥ó¤Ë¤¹¤ë¡£µ¡¼ï¤Ë¤è¤Ã¤Æ¤Ï¡¢Â¾¤Î¥ª¥×¥·¥ç¥ó¤ò¥ª¥ó¤Ë¤¹¤ë¤â¤Î¤â¤¢¤ë¡£

-O2
¤µ¤é¤Ê¤ëºÇŬ²½¤ò¹Ô¤Ê¤¦¡£GCC ¤Ï¡¢¥¹¥Ú¡¼¥¹-®Å٤Υȥ졼¥É¥ª¥Õ¤ò´Þ¤Þ¤Ê¤¤¤Û¤È¤ó¤ÉÁ´¤Æ¤ÎºÇŬ²½¤ò¼Â¹Ô¤¹¤ë¡£-O2 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢¥ë¡¼¥×Ÿ³«¤ä´Ø¿ô¤Î¥¤¥ó¥é¥¤¥óŸ³«¤ò¹Ô¤Ê¤ï¤Ê¤¤¡£-O ¤ÈÈæ¤Ù¤ë¤È¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥³¥ó¥Ñ¥¤¥ë»þ´Ö¤¬Áý¤¨¡¢À¸À®¥³¡¼¥É¤Î¸úΨ¤¬Îɤ¯¤Ê¤ë¡£

-O2 ¤ò»ØÄꤹ¤ë¤È¡¢¥ë¡¼¥×Ÿ³«¤È´Ø¿ô¤Î¥¤¥ó¥é¥¤¥óŸ³«¡¢¤½¤ì¤Ë¸·Ì©¤Ê¥¨¥¤¥ê¥¢¥·¥ó¥°¤ò½ü¤¤¤¿Á´¤Æ¤ÎºÇŬ²½¤¬Í­¸ú¤Ë¤Ê¤ë¡£¤Þ¤¿¡¢Á´¤Æ¤Îµ¡¼ï¤Ç -fforce-mem ¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¡¢¥Ç¥Ð¥Ã¥°¤È´³¾Ä¤·¤Ê¤¤µ¡¼ï¤Ç¤Ï¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤Îºï½ü¤ò¹Ô¤Ê¤¦¡£

-O3
¤µ¤é¤ËºÇŬ²½¤ò¹Ô¤Ê¤¦¡£-O3 ¤Ï -O2 ¤Ç»ØÄꤵ¤ì¤ëÁ´¤Æ¤ÎºÇŬ²½¤ò¹Ô¤Ê¤¤¡¢¤«¤Ä inline-functions ¥ª¥×¥·¥ç¥ó¤ò¹Ô¤Ê¤¦¡£
-O0
ºÇŬ²½¤ò¹Ô¤Ê¤ï¤Ê¤¤¡£
-Os
¥µ¥¤¥º¤Ë¤Ä¤¤¤ÆºÇŬ²½¤¹¤ë¡£-Os ¤ò»ØÄꤹ¤ë¤È¡¢ÉáÄ̤ϥ³¡¼¥É¥µ¥¤¥º¤òÂ礭¤¯¤·¤Ê¤¤ -O2 ¤ÎºÇŬ²½¤òÁ´¤ÆÍ­¸ú¤Ë¤¹¤ë¡£¤Þ¤¿¡¢¥³¡¼¥É¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ë¤è¤¦À߷פµ¤ì¤¿¤µ¤é¤Ê¤ëºÇŬ²½¤ò¼Â¹Ô¤¹¤ë¡£

-O ¥ª¥×¥·¥ç¥ó¤òÊ£¿ô»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢ºÇŬ²½¥ì¥Ù¥ë¤Î¿ô»ú¤¬ÉÕ¤¤¤Æ¤¤¤Æ¤â¤¤¤Ê¤¯¤Æ¤â¡¢ºÇ¸å¤Ë»ØÄꤷ¤¿¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤ë¡£

-fflag ¤È¤¤¤¦·Á¤Î¥ª¥×¥·¥ç¥ó¤Ïµ¡¼ïÆÈΩ¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£¤Û¤È¤ó¤É¤Î¥Õ¥é¥°¤Ë¤Ï¡¢¹ÎÄê·Á¤ÈÈÝÄê·Á¤¬¤¢¤ë¡£-ffoo ¤ÎÈÝÄê·Á¤Ï -fno-foo ¤Ç¤¢¤ë¡£°Ê²¼¤Îɽ¤Ç¤Ï¡¢¤É¤Á¤é¤«°ìÊý¤Î·Á¤·¤«Îóµó¤·¤Æ¤¤¤Ê¤¤¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ê¤¤¤Û¤¦¤òÎóµó¤·¤Æ¤¤¤ë¡£¤â¤¦°ìÊý¤Î·Á¼°¤Ï¡¢no- ¤ò¼è¤ê½ü¤¯¤«¡¢Äɲ乤ì¤ÐÎɤ¤¡£

-ffloat-store
ÉâÆ°¾®¿ôÅÀÊÑ¿ô¤ò¥ì¥¸¥¹¥¿¤Ë¥¹¥È¥¢¤»¤º¡¢ÉâÆ°¾®¿ôÅÀÃͤò¥ì¥¸¥¹¥¿¤«¥á¥â¥ê¤«¤é¼è¤ê½Ð¤¹¤«¤É¤¦¤«¤òÊѹ¹¤¹¤ë²ÄǽÀ­¤Î¤¢¤ë¥ª¥×¥·¥ç¥ó¤ò¶Ø¤¸¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢68000 ¤ÎÍͤʵ¡¼ï¤Ç¡¢¹¥¤Þ¤·¤¯¤Ê¤¤Í¾Ê¬¤ÊÀºÅÙ¤ò»È¤ï¤Ê¤¤¤è¤¦¤Ë¤Ê¤ë¡£68000 ¤Ç¤Ï¡¢(68881 ¤Î)ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤Ï¡¢double ¤¬»ý¤Ä¤ÈÁÛÄꤵ¤ì¤Æ¤¤¤ë¤è¤ê¤â;ʬ¤ÎÀºÅÙ¤òÊÝ»ý¤·¤Æ¤¤¤ë¡£x86 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¢¤ë¡£¤Û¤È¤ó¤É¤Î¥×¥í¥°¥é¥à¤Ë¤È¤Ã¤Æ¤Ï¡¢ÀºÅÙ¤¬Í¾Ê¬¤Ë¹â¤¤¤Î¤ÏÍøÅÀ¤¬²Ã¤ï¤ë¤À¤±¤Ç¤¢¤ë¤¬¡¢´ö¤Ä¤«¤Î¥×¥í¥°¥é¥à¤ÏIEEE ÉâÆ°¾®¿ôÅÀ¤Î¸·Ì©¤ÊÄêµÁ¤òÁÛÄꤷ¤Æ¤¤¤ë¡£¤½¤¦¤¤¤¦¥×¥í¥°¥é¥à¤ËÂФ·¤Æ¤Ï¡¢Å¬Åö¤ÊÃæ´Ö·×»»·ë²Ì¤òÁ´¤ÆÊÑ¿ô¤Ë³ÊǼ¤¹¤ë¤è¤¦¤Ë¥×¥í¥°¥é¥à¤ò½¤Àµ¤·¤Æ¤ª¤¤¤Æ¡¢-ffloat-store ¤ò»È¤¦¤³¤È¡£

-fno-default-inline
¥á¥ó¥Ð´Ø¿ô¤ò¡¢¤½¤ì¤¬Ã±¤Ë¥¯¥é¥¹¥¹¥³¡¼¥×¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¤é¤È¤¤¤Ã¤Æ¥¤¥ó¥é¥¤¥óŸ³«¤·¤Ê¤¤(C++ ¤Î¤ß)¡£¤³¤ì¤ò»ØÄꤷ¤Ê¤¤¤È¡¢-O ÉÕ¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¡¢¥¯¥é¥¹¥¹¥³¡¼¥×Æâ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥á¥ó¥Ð´Ø¿ô¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤ë¡£¤¹¤Ê¤ï¤Á¡¢¥á¥ó¥Ð´Ø¿ô̾¤ÎÁ°¤Ë inline ¤òÉÕ¤±¤ëɬÍפ¬¤Ê¤¤¤Î¤Ç¤¢¤ë¡£
-fno-defer-pop
´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÅ٤˾ï¤Ë¡¢¤½¤Î´Ø¿ô¤«¤éÌá¤ë¤È¤¹¤°°ú¿ô¤ò¥Ý¥Ã¥×¤¹¤ë¡£´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¸å¤Ë°ú¿ô¤ò¥Ý¥Ã¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤µ¡¼ï¤Ç¤Ï¡¢GCC ¤ÏÉáÄ̤ÏÊ£¿ô¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤Ä¤¤¤Æ¥¹¥¿¥Ã¥¯¤Ë°ú¿ô¤òÃßÀѤ·¡¢¤½¤ì¤é¤òÁ´¤Æ°ìÅ٤˥ݥåפ¹¤ë¡£
-fforce-mem
¥á¥â¥ê¥ª¥Ú¥é¥ó¥É¤Ë¤Ä¤¤¤Æ»»½Ñ±é»»¤ò¹Ô¤Ê¤¦Á°¤Ë¡¢¤½¤Î¥á¥â¥ê¥ª¥Ú¥é¥ó¥É¤ò¥ì¥¸¥¹¥¿¤Ë¶¯À©Åª¤Ë¥³¥Ô¡¼¤µ¤»¤ë¡£¤³¤Î·ë²Ì¡¢Á´¤Æ¤Î¥á¥â¥ê»²¾È¤òÀøºßŪ¤Ê¶¦ÄÌÉôʬ¼°¤È¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢À¸À®¥³¡¼¥É¤¬Îɤ¯¤Ê¤ë¡£¤³¤ì¤é¤Î¥á¥â¥ê»²¾È¤¬¶¦ÄÌÉôʬ¼°¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢Ì¿ÎáÁȹ礻¥Õ¥§¡¼¥º¤¬ÆÈΩ¤·¤¿¥ì¥¸¥¹¥¿¤Ø¤Î¥í¡¼¥É¤òºï½ü¤¹¤ëɬÍפ¬¤¢¤ë¡£-O2 ¤ò»ØÄꤹ¤ë¤È¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤ë¡£
-fforce-addr
¥á¥â¥êÃæ¤Î¥¢¥É¥ì¥¹Äê¿ô¤ò¡¢¤½¤ì¤Ë¤Ä¤¤¤Æ»»½Ñ±é»»¤ò¹Ô¤Ê¤¦Á°¤Ë¥ì¥¸¥¹¥¿¤Ë¥³¥Ô¡¼¤¹¤ë¤³¤È¤ò¶¯À©¤¹¤ë¡£¤³¤ì¤Ï¡¢-fforce-mem ¤ÈÆ±ÄøÅÙ¤ËÎɤ¤¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-fomit-frame-pointer
¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤òɬÍפȤ·¤Ê¤¤´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤ò¥ì¥¸¥¹¥¿¤ËÊÝ»ý¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤ò¥»¡¼¥Ö¡¢ÀßÄê¡¢¥ê¥¹¥È¥¢¤¹¤ëÌ¿Îá¤ò¤Ê¤¯¤¹¤³¤È¤¬¤Ç¤­¤ë¡£¤Þ¤¿¡¢Â¿¤¯¤Î´Ø¿ô¤ÇÍøÍѲÄǽ¤Ê¥ì¥¸¥¹¥¿¤¬°ì¤ÄÁý¤¨¤ë¡£¤Þ¤¿¡¢µ¡¼ï¤Ë¤è¤Ã¤Æ¤Ï¥Ç¥Ð¥Ã¥°¤¬ÉÔ²Äǽ¤Ë¤Ê¤ë¡£

µ¡¼ï¤Ë¤è¤Ã¤Æ¤Ï¡¢Vax ¤Î¤è¤¦¤Ë¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¸ú²Ì¤¬¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£É¸½à¤Î¸Æ¤Ó½Ð¤·¥·¡¼¥±¥ó¥¹¤¬¼«Æ°Åª¤Ë¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤ò¼è°·¤¦¤Î¤Ç¡¢¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤¬Â¸ºß¤·¤Ê¤¤¿¶¤ê¤ò¤·¤Æ¤â²¿¤â¥»¡¼¥Ö¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£¥Þ¥·¥óµ­½Ò¥Þ¥¯¥í FRAME_POINTER_REQUIRED ¤¬¡¢¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»È¤¨¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ë¡£See Registers.

-fno-inline
¥­¡¼¥ï¡¼¥É inline ¤ËÃí°Õ¤òʧ¤ï¤Ê¤¤¡£ÉáÄ̤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢´Ø¿ô¤Î¥¤¥ó¥é¥¤¥óŸ³«¤ò°ìÀڹԤʤ碌¤Ê¤¤¤¿¤á¤Ë»È¤ï¤ì¤ë¡£ºÇŬ²½¤ò¹Ô¤Ê¤ï¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¤É¤Î´Ø¿ô¤â¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤ÆÍߤ·¤¤¡£
-finline-functions
ñ½ã¤Ê´Ø¿ô¤òÁ´¤Æ¸Æ¤Ó¤À¤·¸µ¤ËÅý¹ç¤¹¤ë¡£GCC ¤Ï¡¢¤É¤Î´Ø¿ô¤¬¤³¤ÎÊýË¡¤ÇÅý¹ç¤¹¤ë¤Î¤Ë½¼Ê¬Ã±½ã¤«¤òȯ¸«Åª¤Ë·èÄꤹ¤ë¡£

¤¢¤ë´Ø¿ô¤ËÂФ¹¤ëÁ´¤Æ¤Î¸Æ¤Ó½Ð¤·¤¬Åý¹ç¤µ¤ì¤ë¾ì¹ç¡¢¤½¤Î´Ø¿ô¤¬static ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ÉáÄ̤Ϥ½¤Î´Ø¿ô¤Ï¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤È¤·¤Æ¤Ï½ÐÎϤµ¤ì¤Ê¤¤¡£

-finline-limit-n
¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢GCC ¤Ï¥¤¥ó¥é¥¤¥óŸ³«²Äǽ¤Ê´Ø¿ô¤ÎÂ礭¤µ¤òÀ©¸Â¤·¤Æ¤¤¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ÌÀ¼¨Åª¤Ë¥¤¥ó¥é¥¤¥óŸ³«¤ò¹Ô¤¦¤È°õ¤òÉÕ¤±¤é¤ì¤Æ¤¤¤ë(¤¹¤Ê¤ï¤Á¡¢¥­¡¼¥ï¡¼¥É inline ¤ò»ØÄꤵ¤ì¤Æ¤¤¤ë¤«¡¢C++ ¤Î¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë)´Ø¿ô¤ËÂФ¹¤ë¤³¤ÎÀ©¸Â¤òÄ´À°¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£n ¤Ï¡¢¥¤¥ó¥é¥¤¥óŸ³«²Äǽ¤Ê´Ø¿ô¤ÎÂ礭¤µ¤òµ¿»÷Ì¿Îá¤Î¿ô¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë(¥Ñ¥é¥á¡¼¥¿¤Î¼è°·¤¤¤Ï¿ô¤¨¤Ê¤¤)¡£¥Ç¥Õ¥©¥ë¥È¤Î n ¤ÎÃͤϡ¢10000 ¤Ç¤¢¤ë¡£¤³¤ÎÃͤòÂ礭¤¯¤¹¤ë¤È¡¢¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤¿¥³¡¼¥É¤¬Â¿¤¯¤Ê¤ê¡¢¥³¥ó¥Ñ¥¤¥ë»þ´Ö¤È¥á¥â¥ê¾ÃÈñÎ̤¬Í¾·×¤Ë¤«¤«¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤ÎÃͤò¾®¤µ¤¯¤¹¤ë¤È¡¢ÉáÄ̤ϥ³¥ó¥Ñ¥¤¥ë»þ´Ö¤¬Â®¤¯¤Ê¤ê¡¢¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤ë¥³¡¼¥É¤¬¾¯¤Ê¤¯¤Ê¤ë(¤³¤ì¤Ï¡¢¶²¤é¤¯¥×¥í¥°¥é¥à¤¬ÃÙ¤¯¤Ê¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¤À¤í¤¦)¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬ÆÃ¤ËÍ­¸ú¤Ê¤Î¤Ï¡¢C++ ¤ÎºÆµ¢Åª¥Æ¥ó¥×¥ì¡¼¥È¤Ë´ð¤Å¤¯¤è¤¦¤Ê¡¢¥¤¥ó¥é¥¤¥óŸ³«¤òÈó¾ï¤Ë¤¿¤¯¤µ¤ó»È¤Ã¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡£

Ãí°Õ¡£µ¿»÷Ì¿Îá¤Ï¡¢º£¤Î¤³¤ÎÆÃÄê¤Îʸ̮¤Ë¤ª¤¤¤Æ¤Ï¡¢´Ø¿ô¤ÎÂ礭¤µ¤ÎÃê¾ÝŪ¤Ê¼ÜÅÙ¤òɽ¤¹¡£¥¢¥»¥ó¥Ö¥êÌ¿Îá¿ô¤òɽ¤·¡¢¤½¤Î°ÕÌ£¤Ï¤¢¤ë¥ê¥ê¡¼¥¹¤ÈÊ̤Υê¥ê¡¼¥¹¤ÇÊѤï¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

-fkeep-inline-functions
¤¢¤ë´Ø¿ô¤ËÂФ¹¤ë¸Æ¤Ó½Ð¤·¤¬Á´ÉôÅý¹ç¤µ¤ì¡¢¤½¤Î´Ø¿ô¤¬ static ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¡¢¼Â¹Ô»þ¤Ë¸Æ¤Ó½Ð¤·²Äǽ¤ÊÈǤδؿô¤òÊ̸Ĥ˽ÐÎϤ¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï extern inline Àë¸À¤µ¤ì¤¿´Ø¿ô¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤¡£
-fkeep-static-consts
ºÇŬ²½¤ò¼Â¹Ô¤·¤Ê¤¤¤È¤­¤Ë¡¢static const ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤¬»²¾È¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢¤½¤ÎÊÑ¿ô¤ò½ÐÎϤ¹¤ë¡£

GCC ¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤¹¤ë¡£ºÇŬ²½¤Î̵ͭ¤Ë´Ø¤ï¤é¤º¤Ë¡¢GCC ¤ËÊÑ¿ô¤¬»²¾È¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¸¡ºº¤µ¤»¤¿¤¤¾ì¹ç¤Ï¡¢-fno-keep-static-consts ¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤ÐÎɤ¤¡£

-fno-function-cse
´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¥ì¥¸¥¹¥¿¤ËÃÖ¤«¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£¤¢¤ë°ìÄê¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Ì¿Îá¤Ï°ì¡¹¤½¤Î´Ø¿ô¤Î¥¢¥É¥ì¥¹¤òÌÀ¼¨Åª¤ËÊÝ»ý¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¥³¡¼¥É¤Î¸úΨ¤¬°­¤¯¤Ê¤ë¤¬¡¢¥¢¥»¥ó¥Ö¥é¤Î½ÐÎϤòÊѤˤ¤¤¸¤Ã¤¿¤è¤¦¤Ê¾ì¹ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¤È¼Â¹Ô¤µ¤ì¤ëºÇŬ²½½èÍý¤¬º®Í𤵤»¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë

-ffast-math
¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢¼Â¹Ô®ÅÙ¤òºÇŬ²½¤¹¤ë¤È¤¤¤¦´ÑÅÀ¤«¤é¡¢¤¢¤ëÌÌ¤Ç ANSI ¤ä IEEE ¤Îµ¬Â§¤ä»ÅÍͤòÇˤ뤳¤È¤ò GCC ¤Ëµö¤¹¡£Î㤨¤Ð¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï¡¢sqrt ´Ø¿ô¤Î°ú¿ô¤¬Éé¤Ë¤Ê¤é¤Ê¤¤¤È¤«¡¢ÉâÆ°¾®¿ôÅÀÃͤ¬NaN ¤Ë¤Ê¤ë¤³¤È¤Ï¤Ê¤¤¤È¤¤¤¦²¾Äê¤ò¹Ô¤Ê¤¦¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¤É¤Î -O ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤âÍ­¸ú¤Ë¤Ê¤ë¤³¤È¤Ï¤Ê¤¤¡£²¿¸Î¤Ê¤é¡¢IEEE ¤ä ANSI ¤Î¿ô³Ø´Ø¿ô¤Îµ¬Â§¡¿»ÅÍͤ˸·Ì©¤Ë´ð¤Å¤¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Î¾ì¹ç¤Ï¡¢½ÐÎϤ¬Àµ¤·¤¯¤Ê¤¯¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó·²¤Ï¡¢ÆÃÄê¤ÎºÇŬ²½¤òÀ©¸æ¤¹¤ë¡£-O2 ¥ª¥×¥·¥ç¥ó¤Ï¡¢-funroll-loops ¤È -funroll-all-loops¡¢ -fstrict-aliasing ¥ª¥×¥·¥ç¥ó¤ò½ü¤¯¡¢Á´¤Æ¤ÎºÇŬ²½¤ò¼Â¹Ô¤¹¤ë¡£Â¿¤¯¤Îµ¡¼ï¤Ç¤Ï¡¢-O ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢-fthread-jumps ¤È-fdelayed-branch ¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤¬¡¢ÆÃÄê¤Îµ¡¼ï¤Ç¤ÏÊ̤ΰ·¤¤¤ò¤¹¤ë¡£

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¹âÅ٤ʺÇŬ²½¤ò¹Ô¤Ê¤¤¤¿¤¤¤È¤¤¤¦¾ì¹ç¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

-fstrength-reduce
¥ë¡¼¥×¤Î¶¯Åٺ︺¤È·«¤êÊÖ¤·ÊÑ¿ô¤Îºï½ü¤ÎºÇŬ²½¤ò¼Â¹Ô¤¹¤ë¡£
-fthread-jumps
¤¢¤ë¥¸¥ã¥ó¥×¤Îʬ´ôÀè¤Ë¡¢Ê̤Τ⤦°ì¤Ä¤ÎÈæ³Ó¤¬¤¢¤ê¡¢¤½¤ÎÈæ³Ó¤¬ºÇ½é¤ÎÈæ³Ó¤ËÊñ³ç¤µ¤ì¤ë¤â¤Î¤«¤É¤¦¤«¤ò¸¡ºº¤¹¤ëºÇŬ²½¤ò¼Â¹Ô¤¹¤ë¡£¤â¤·Êñ³ç¤µ¤ì¤ë¤â¤Î¤Ê¤é¡¢ºÇ½é¤Îʬ´ô¤Îʬ´ôÀè¤Ï¡¢ÆóÈÖÌܤÎʬ´ô¤Îʬ´ôÀ褫¤½¤Îľ¸å¤ÎÃÏÅÀ¤Î¤É¤Á¤é¤«¤Ë¡¢ÆóÈÖÌܤÎÈæ³Ó¾ò·ï¤Î¿¿µ¶¤¬´ûÃΤ«¤É¤¦¤«¤Ë½¾¤Ã¤Æ¡¢Êѹ¹¤µ¤ì¤ë¡£
-fcse-follow-jumps
¶¦ÄÌÉôʬ¼°ºï½ü(CSE)¤ÎºÝ¤Ë¡¢¥¸¥ã¥ó¥×Ì¿Îá¤Î¤¦¤Á¡¢¤½¤Î¥¸¥ã¥ó¥×Àè¤Ë¾¤Î·ÐÏ©¤òÄ̤äÆÅþ㤹¤ë¤³¤È¤¬¤Ê¤¤¤â¤Î¤òõ¤·½Ð¤¹¡£Î㤨¤Ð¡¢CSE ¤¬else Àá¤Ä¤­¤Î if ʸ¤ò¸«¤Ä¤±¤ë¤È¡¢¥Æ¥¹¥È¤µ¤ì¤¿¾ò·ï¤¬µ¶¤Î¤È¤­¤Î¥¸¥ã¥ó¥×¤Ë½¾¤¦¡£
-fcse-skip-blocks
¤³¤ì¤Ï -fcse-follow-jumps ¤ËÎɤ¯»÷¤Æ¤¤¤ë¤¬¡¢CSE ¤Ï¾ò·ïŪ¤Ë¥Ö¥í¥Ã¥¯¤òÈô¤Ó±Û¤¹¥¸¥ã¥ó¥×¤Ë½¾¤¦¡£CSE ¤¬ else Àá¤Î¤Ê¤¤if ʸ¤ò¸«¤Ä¤±¤ë¤È¡¢if Àá¤ÎËÜÂΤΤޤï¤ê¤Î¥¸¥ã¥ó¥×¤Ë½¾¤¦¡£
-frerun-cse-after-loop
¥ë¡¼¥×ºÇŬ²½¤Î¼Â¹Ô¸å¤Ë¶¦ÄÌÉôʬ¼°¤Îºï½ü¤ò¤â¤¦°ìÅټ¹Ԥ¹¤ë¡£
-frerun-loop-opt
¥ë¡¼¥×ºÇŬ²½¤òÆó²ó¼Â¹Ô¤¹¤ë¡£
-fgcse
¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°ºï½ü¥Ñ¥¹¤ò¼Â¹Ô¤¹¤ë¡£¤³¤Î¥Ñ¥¹¤Ï¡¢¥°¥í¡¼¥Ð¥ë¤ÊÄê¿ô¤È¥³¥Ô¡¼¤ÎÅÁÇŤâ¼Â¹Ô¤¹¤ë¡£
-fexpensive-optimizations
Èæ³ÓŪ¥³¥¹¥È¤¬¤«¤«¤ë¡¢¥Þ¥¤¥Ê¡¼¤ÊºÇŬ²½¤ò´ö¤Ä¤«¹Ô¤Ê¤¦¡£
-foptimize-register-moves
-fregmove
°Üư̿ÎáÃæ¤Î¥ì¥¸¥¹¥¿ÈÖ¹æ¤ò¾¤Îñ½ã¤ÊÌ¿Îá¤Î¥ª¥Ú¥é¥ó¥É¤È¤·¤ÆºÆ³äÅö¤ò¹Ô¤¤¡¢¥ì¥¸¥¹¥¿·ë¹ç¤ÎÎ̤òºÇÂç¤Ë¤¹¤ë¤³¤È¤ò»î¤ß¤ë¡£¤³¤ì¤Ï¡¢¤È¤ê¤ï¤±Æó¥ª¥Ú¥é¥ó¥ÉÌ¿Îá¤Îµ¡¼ï¤ÇÌò¤ËΩ¤Ä¡£GCC ¤Ï¡¢-O2 °Ê¾å¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤³¤ÎºÇŬ²½¤òÍ­¸ú¤Ë¤¹¤ë¡£

¤Ê¤ª¡¢-fregmove ¤È -foptimize-register-moves ¤ÏƱ¤¸ºÇŬ²½¤Ç¤¢¤ë¡£

-fdelayed-branch
¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ÃÙ±äʬ´ôÌ¿Îá¸å¤ÎÍøÍѲÄǽ¤ÊÌ¿Î᥹¥í¥Ã¥È¤òÍøÍѤ¹¤ë¤è¤¦¤ËÌ¿Îá¤ÎʤÙÂØ¤¨¤ò»î¤ß¤ë¡£
-fschedule-insns
¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢É¬ÍפȤµ¤ì¤ë¥Ç¡¼¥¿¤¬ÍøÍÑÉÔ²Äǽ¤Ê¤¿¤á¤Ëµ¯¤³¤ë¼Â¹Ô¤Î¥¹¥È¡¼¥ë¤ò¤Ê¤¯¤è¤¦¤ËÌ¿Îá¤ÎʤÙÂØ¤¨¤ò»î¤ß¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ä¥á¥â¥ê¤«¤é¤Î¥í¡¼¥ÉÌ¿Î᤬ÃÙ¤¤µ¡¼ï¤Ç¡¢¥í¡¼¥ÉÌ¿Îá¤äÉâÆ°¾®¿ôÅÀÌ¿Îá¤Î·ë²Ì¤¬É¬Íפˤʤë¤Þ¤Ç¤Î´Ö¡¢Â¾¤ÎÌ¿Îá¤òȯ¹Ô¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ë¡£
-fschedule-insns2
-fschedule-insns ¤È¤Û¤ÜƱ¤¸¤Ç¡¢°ã¤¤¤Ï¥ì¥¸¥¹¥¿³äÅö¤¬´°Î»¤·¤¿¸å¤Ë¤â¤¦°ìÅÙÌ¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥Ñ¥¹¤ò¹Ô¤Ê¤¦¤³¤È¤Ç¤¢¤ë¡£¤³¤ì¤¬¤È¤ê¤ï¤±Ìò¤ËΩ¤Ä¤Î¤Ï¡¢¥ì¥¸¥¹¥¿¿ô¤¬Èæ³ÓŪ¾¯¤Ê¤¯¡¢¥á¥â¥ê¤«¤é¤Î¥í¡¼¥ÉÌ¿Î᤬ʣ¿ô¥µ¥¤¥¯¥ë¤«¤«¤ë¤è¤¦¤Êµ¡¼ï¤Î¾ì¹ç¤Ç¤¢¤ë¡£
-ffunction-sections
-fdata-sections
¥¿¡¼¥²¥Ã¥È¤¬Ç¤°Õ¸Ä¿ô¤Î¥»¥¯¥·¥ç¥ó¤ò»È¤¨¤ë¤Ê¤é¡¢³Æ´Ø¿ô¤ä¥Ç¡¼¥¿¹àÌܤò¤½¤ì¤¾¤ìÀìÍѤΥ»¥¯¥·¥ç¥ó¤ËÆþ¤ì¤¿½ÐÎÏ¥Õ¥¡¥¤¥ë¤òºî¤ë¡£´Ø¿ô̾¤ä¥Ç¡¼¥¿¹àÌÜ̾¤«¤é¡¢½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ç¤Î¥»¥¯¥·¥ç¥ó̾¤¬·è¤Þ¤ë¡£

¥ê¥ó¥«¤ËÌ¿Îá¶õ´Ö¤Î»²¾È¤Î¶É½êÀ­¤ò²þÁ±¤¹¤ëºÇŬ²½¤ò¹Ô¤Ê¤¦µ¡Ç½¤¬¤¢¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤ÈÎɤ¤¤À¤í¤¦¡£HP-UX ¤Î²ÔƯ¤¹¤ë HPPA ¥×¥í¥»¥Ã¥µ¤È Solaris 2 ¤Î²ÔƯ¤¹¤ë SPARC ¥×¥í¥»¥Ã¥µ¤Ë¤Ï¤³¤Î¤è¤¦¤ÊºÇŬ²½µ¡Ç½¤Î¤¢¤ë¥ê¥ó¥«¤¬Â¸ºß¤¹¤ë¡£ELF ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë·Á¼°¤ò»È¤Ã¤Æ¤¤¤ë¾¤Î¥·¥¹¥Æ¥à¤ä¡¢ AIX ¤â¾­Í褳¤ÎºÇŬ²½µ¡Ç½¤¬²Ã¤ï¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤Î¤Ï¡¢»È¤¦¤³¤È¤Ë¤è¤Ã¤ÆÃø¤·¤¤¸æÍø±×¤¬¤¢¤ë¾ì¹ç¤Ë¸Â¤ë¤³¤È¡£¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤¬ºî¤ë¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ä¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤¬Â礭¤¯¤Ê¤ê¡¢¤½¤Î¤¿¤á¤ËÃÙ¤¯¤Ê¤ë¤³¤È¤â¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢Á´¤Æ¤Î¥·¥¹¥Æ¥à¤Çgprof ¤¬»È¤¨¤Ê¤¯¤Ê¤ë¡£¤Þ¤¿¡¢-g ¤È¶¦¤Ë»ØÄꤹ¤ë¤È¡¢¥Ç¥Ð¥Ã¥°»þ¤ËÌäÂ꤬À¸¤¸¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

-fcaller-saves
´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤è¤êÇ˲õ¤µ¤ì¤ë¥ì¥¸¥¹¥¿¤ËÃͤò³ä¤êÅö¤Æ¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£¤³¤Î¤¿¤á¤Ë¡¢Ì¿Îá¤ò;ʬ¤ËÀ¸À®¤·¡¢¸Æ¤Ó½Ð¤·¤ÎÁ°¸å¤Ç¥ì¥¸¥¹¥¿¤Î¥»¡¼¥Ö¤È¥ê¥¹¥È¥¢¤ò¹Ô¤Ê¤¦¡£¤³¤Î¤è¤¦¤Ê³äÅö¤¬¹Ô¤Ê¤ï¤ì¤ë¤Î¤Ï¡¢Â¾¤ÎÊýË¡¤ò¼è¤ë¤è¤ê¤â·ë²ÌŪ¤ËÎɤ¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¸«¹þ¤ß¤Î¤¢¤ë¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£

¤¤¤¯¤Ä¤«¤Îµ¡¼ï¤Ç¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¾ï¤Ë¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤½¤¦¤¤¤¦µ¡¼ï¤Ë¤Ï¡¢Âå¤ï¤ê¤Ë»È¤¦¤Ù¤­¡¢¸Æ¤Ó½Ð¤·»þÊݸ¥ì¥¸¥¹¥¿¤¬ÉáÄ̤ʤ¤¤Î¤Ç¤¢¤ë¡£

Á´¤Æ¤Îµ¡¼ï¤Ç¡¢ºÇŬ²½¥ì¥Ù¥ë¤ò 2 °Ê¾å¤Ë¤¹¤ë¤È¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤ë¡£

-funroll-loops
¥ë¡¼¥×Ÿ³«ºÇŬ²½¤ò¼Â¹Ô¤¹¤ë¡£¤³¤ì¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤«¼Â¹Ô»þ¤Ë·«¤êÊÖ¤·²ó¿ô¤¬·è¤á¤é¤ì¤ë¥ë¡¼¥×¤Ë¤·¤«¹Ô¤Ê¤ï¤ì¤Ê¤¤¡£-funroll-loops ¤Ï¡¢-fstrength-reduce ¤È-frerun-cse-after-loop ¤ò´Þ¤à¡£
-funroll-all-loops
¥ë¡¼¥×Ÿ³«ºÇŬ²½¤ò¼Â¹Ô¤¹¤ë¡£¤³¤ì¤Ï¡¢Á´¤Æ¤Î¥ë¡¼¥×¤ËÂФ·¤Æ¹Ô¤Ê¤ï¤ì¡¢ÉáÄÌ¤Ï¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÃÙ¤¯¤¹¤ë¡£-funroll-all-loops ¤Ï¡¢-fstrength-reduce ¤È-frerun-cse-after-loop ¤ò´Þ¤à¡£
-fmove-all-movables
¥ë¡¼¥×Ãæ¤ÎÉÔÊѤʷ׻»¤òÁ´¤Æ¥ë¡¼¥×¤Î³°¤Ë°Üư¤¹¤ë¡£
-freduce-all-givs
¥ë¡¼¥×Ãæ¤Î°ìÈÌͶƳÊÑ¿ô¤òÁ´¤Æ¶¯Åٺ︺¤¹¤ë¡£

Ãí°Õ¡£Fortran ¤Ç½ñ¤«¤ì¤¿¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ï-fmove-all-movables ¤È -freduce-all-givs ¤Ï¡¢ºÇŬ²½¤ò¹Ô¤¦¤È¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤ë¡£

¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ç¡¢À¸À®¤µ¤ì¤ë¥³¡¼¥É¤¬¤è¤¯¤Ê¤ë¤³¤È¤â¤¢¤ë¤·¡¢°­¤¯¤Ê¤ë¤³¤È¤â¤¢¤ë¡£·ë²Ì¤Ï¡¢¥½¡¼¥¹¥³¡¼¥É¤Ç¤Î¥ë¡¼¥×¤Ë¹½Â¤¤Ë¶¯¤¯°Í¸¤¹¤ë¡£

¤³¤ÎÆó¤Ä¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥ë¡¼¥×ºÇŬ²½¤ò²þÎɤ¹¤ë¿§¡¹¤ÊÊýË¡¤ÎÍ­¸úÀ­¤òÃΤëÌòÌܤ¬½ª¤ï¤Ã¤¿¤Ê¤é¡¢¤¤¤Ä¤«ºï½ü¤¹¤ëͽÄê¤Ç¤¢¤ë¡£

¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢ÆÉ¼Ô¤Î¥³¡¼¥É¤ÎÀ­Ç½¤Ë¤É¤ì¤°¤é¤¤¸ú²Ì¤¬¤¢¤Ã¤¿¤«¤ò¡¢²æ¡¹(gcc@gcc.gnu.org ¤È fortran@gnu.org) ¤ËÃΤ餻¤ÆÍߤ·¤¤¡£¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤­¤ËÃÙ¤¯¤Ê¤Ã¤¿¥³¡¼¥É¤Ë²æ¡¹¤ÏÈó¾ï¤Ë¶½Ì£¤¬¤¢¤ë¡£

-fno-peephole
µ¡¼ï¸ÇÍ­¤ÎÇÁ¤­·êºÇŬ²½¤ò̵¸ú¤Ë¤¹¤ë¡£
-fbranch-probabilities
-fprofile-arcs (see Options for Debugging Your Program or gcc)¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤¿¸å¡¢Æó²óÌÜ¤Ï -fbranch-probabilities ¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡¢Ê¬´ô¤¬µ¯¤³¤ë·ÐÏ©¤Î¿ä¬¤Ë´ð¤Å¤¯ºÇŬ²½¤ò²þÎɤ¹¤ë¡£

-fbranch-probabilities ¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï REG_EXEC_COUNT ¤È¤¤¤¦¥Î¡¼¥È¤ò³Æ´ðËÜ¥Ö¥í¥Ã¥¯¤ÎºÇ½é¤ÎÌ¿Îá¤ËÉÕ¤±¡¢REG_BR_PROB ¤È¤¤¤¦¥Î¡¼¥È¤ò³Æ JUMP_INSN ¤È CALL_INSN ¤ËÉÕ¤±¤ë¡£¤³¤ì¤é¤ò»È¤Ã¤ÆºÇŬ²½¤ò¸þ¾å¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¸½ºß¡¢¤³¤ì¤é¤Ï°ì²Õ½ê¤Ç¤·¤«»È¤ï¤ì¤Æ¤¤¤Ê¤¤¡£reorg.c ¤Ç¡¢¤¢¤ëʬ´ô¤¬¤É¤Á¤é¤ÎÊý¸þ¤Ëµ¯¤³¤ê¤½¤¦¤«¤ò¿ä¬¤¹¤ëÂå¤ï¤ê¤Ë¡¢REG_BR_PROB ¤ÎÃͤò»È¤Ã¤Æ¤è¤êʬ´ô¤¹¤ëÉÑÅÙ¤¬¹â¤¤Êý¸þ¤òÀµ³Î¤Ë·èÄꤹ¤ë¡£

-fstrict-aliasing
GCC ¤Ë¡¢¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¸À¸ì¤Ë¼è¤ê¤¦¤ëºÇ¤â¸·Ì©¤ÊÊÌ̾µ¬Â§¤ò¼è¤é¤»¤ë¡£C(¤½¤ì¤Ë C++)¤Î¾ì¹ç¤Ï¡¢¤³¤ì¤Ë¤è¤ê¼°¤Î·¿¤Ë¤â¤È¤Å¤¯ºÇŬ²½¤¬Í­¸ú¤Ë¤Ê¤ë¡£ÆÃ¤Ë¡¢°ì¤Ä¤Î·¿¤Î¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢Æ±¤¸¥¢¥É¥ì¥¹¤Ë°Û¤Ê¤ë·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬Â¸ºß¤¹¤ë¤³¤È¤Ï¡¢¤½¤ì¤é¤Î·¿¤¬¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤Ê¤¤¸Â¤ê¡¢·è¤·¤Æ¤Ê¤¤¤È²¾Äꤹ¤ë¡£Î㤨¤Ð¡¢unsigned int ¤Ï int ¤ÎÊÌ̾¤Ë¤Ê¤ê¤¦¤ë¤¬¡¢void* ¤ä double ¤ÎÊÌ̾¤Ë¤Ï¤Ê¤ê¤¨¤Ê¤¤¡£Ê¸»ú·¿¤Ï¾¤Î¤É¤ó¤Ê·¿¤ÎÊÌ̾¤Ë¤â¤Ê¤ê¤¦¤ë¡£

°Ê²¼¤Î¤è¤¦¤Ê¥³¡¼¥É¤Ë¤ÏÆÃÊ̤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£

union a_union {
  int i;
  double d;
};

int f() {
  a_union t;
  t.d = 3.0;
  return t.i;
}
¶¦ÍÑÂΤΡ¢°ìÈֺǸå¤Ë½ñ¤­¹þ¤ß¤¬¹Ô¤ï¤ì¤¿¥á¥ó¥Ð¤È¤Ï°Û¤Ê¤ë¥á¥ó¥Ð¤ÎÃͤò¸Æ¤Ó½Ð¤¹¤È¤¤¤¦¼êË¡(¡Ö·¿¤â¤¸¤ê¡×¡¢type-punning ¤È¸Æ¤Ð¤ì¤ë)¤ÏÎɤ¯¹Ô¤ï¤ì¤Æ¤¤¤ë¡£-fstrict-aliasing ¤ò»ØÄꤷ¤Æ¤â¡¢·¿¤â¤¸¤ê¤Ïµö¤µ¤ì¤ë¤Î¤Ç¡¢¥á¥â¥ê¤Ï¶¦ÍÑÂη¿¤òÄ̤¸¤Æ»²¾È¤µ¤ì¤ë¡£¤³¤Î¤¿¤á¡¢¾åµ­¤Î¥³¡¼¥É¤Ï´üÂԤɤª¤ê¤Ëưºî¤¹¤ë¡£¤À¤¬¡¢¼¡¤Î¥³¡¼¥É¤Ï´üÂԤɤª¤ê¤Ë¤Ê¤é¤Ê¤¤¡£
int f() {
  a_union t;
  int* ip;
  t.d = 3.0;
  ip = &t.i;
  return *ip;
}

¸À¸ì¸ÇÍ­¤ÎÊÌ̾²òÀϤò¼Â¹Ô¤·¤¿¤¤¸À¸ì¤¬¤¢¤ì¤Ð¡¢¤¢¤ë tree ¥Î¡¼¥É¤¬Í¿¤¨¤é¤ì¤¿¾ì¹ç¤Ë¡¢¤½¤Î¥Î¡¼¥É¤ÎÊÌ̾¥»¥Ã¥È¤ò·×»»¤¹¤ë´Ø¿ô¤òÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¡£Î㤨¤Ð¡¢C ¸À¸ì¤Î¥Õ¥í¥ó¥È¥¨¥ó¥É¤Î´Ø¿ô c_get_alias_set ¤ò»²¾È¤Î¤³¤È¡£


Node:Preprocessor Options, Next:, Previous:Optimize Options, Up:Invoking GCC

¥×¥ê¥×¥í¥»¥Ã¥µ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï C ¥×¥ê¥×¥í¥»¥Ã¥µ¤òÀ©¸æ¤¹¤ë¡£C ¥×¥ê¥×¥í¥»¥Ã¥µ¤Ï¡¢³Æ C ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢¼ÂºÝ¤Î¥³¥ó¥Ñ¥¤¥ë¤ÎÁ°¤Ë¼Â¹Ô¤µ¤ì¤ë¡£

-E ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢Á°½èÍý°Ê³°¤Î¤³¤È¤Ï¤ä¤é¤Ê¤¤¡£°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Î¤¦¤Á´ö¤Ä¤«¤Ï¡¢-E ¤ÈÁȤ߹ç¤ï¤»¤¿¤È¤­¤Ë¤À¤±°ÕÌ£¤ò»ý¤Ä¡£²¿¸Î¤Ê¤é¡¢¤½¤ì¤é¤Ï¥×¥ê¥×¥í¥»¥Ã¥µ¤Î½ÐÎϤò¼ÂºÝ¤Î¥³¥ó¥Ñ¥¤¥ë¤Ë¤ÏŬ¤µ¤Ê¤¤¤â¤Î¤Ë¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£

-include file
Àµµ¬¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤ò½èÍý¤¹¤ëÁ°¤Ë¡¢file ¤òÆþÎϤȤ·¤Æ½èÍý¤¹¤ë¡£»ö¼Â¾å¡¢file ¤ÎÆâÍÆ¤¬Àè¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¡£¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤷ¤¿ -D ¥ª¥×¥·¥ç¥ó¤È -U ¥ª¥×¥·¥ç¥ó¤Ï¤É¤ì¤â¡¢-include file ¤ÎÁ°¤Ëɬ¤º½èÍý¤µ¤ì¤ë¡£¤³¤ì¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¤Ë½ñ¤«¤ì¤¿½çÈ֤ˤϴط¸¤·¤Ê¤¤¡£Á´¤Æ¤Î -include ¥ª¥×¥·¥ç¥ó¤È -imacros ¥ª¥×¥·¥ç¥ó¤Ï¡¢½ñ¤«¤ì¤¿½ç¤Ë½èÍý¤µ¤ì¤ë¡£
-imacros file
ÆþÎϤȤ·¤Æ file ¤ò½èÍý¤·¡¢¤½¤Î·ë²Ì¤Î½ÐÎϤϼΤƵî¤Ã¤¿¸å¤Ç¡¢Àµµ¬¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î½èÍý¤Ë¼è¤ê¤«¤«¤ë¡£file ¤«¤éÀ¸À®¤µ¤ì¤ë½ÐÎϤϼΤƤé¤ì¤ë¤Î¤Ç¡¢-imacros file ¤ÎÍ£°ì¤Î¸ú²Ì¤Ï¡¢file ¤Ç¥Þ¥¯¥í¤òÄêµÁ¤·¡¢Àµµ¬¤ÎÆþÎϤǤ½¤ì¤ò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£

¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤷ¤¿ -D ¥ª¥×¥·¥ç¥ó¤È -U ¥ª¥×¥·¥ç¥ó¤Ï¤É¤ì¤â¡¢-imacros file ¤ÎÁ°¤Ëɬ¤º½èÍý¤µ¤ì¤ë¡£¤³¤ì¤Ï¡¢¥³¥Þ¥ó¥É¹Ô¤Ë½ñ¤«¤ì¤¿½çÈ֤ˤϴط¸¤·¤Ê¤¤¡£Á´¤Æ¤Î -include ¥ª¥×¥·¥ç¥ó¤È -imacros ¥ª¥×¥·¥ç¥ó¤Ï¡¢½ñ¤«¤ì¤¿½ç¤Ë½èÍý¤µ¤ì¤ë¡£

-idirafter dir
¥Ç¥£¥ì¥¯¥È¥ê dir ¤òÂèÆó¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Ñ¥¹¤Ë²Ã¤¨¤ë¡£ÂèÆó¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Ñ¥¹¤Ë¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Âè°ì¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Ñ¥¹(-I ¤¬²Ã¤¨¤¿¤â¤Î)¤Ë¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¸«¤Ä¤«¤é¤Ê¤¤¤È¤­¤Ë¡¢¸¡º÷¤µ¤ì¤ë¡£
-iprefix prefix
prefix ¤ò¡¢¸å³¤Î -iwithprefix ¥ª¥×¥·¥ç¥ó¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤È¤·¤Æ»ØÄꤹ¤ë¡£
-iwithprefix dir
¥Ç¥£¥ì¥¯¥È¥ê¤ò°ì¸Ä¡¢ÂèÆó¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Ñ¥¹¤ËÄɲ乤롣¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á°¤Ï¡¢prefix ¤È dir ¤òÏ¢·ë¤¹¤ë¤³¤È¤Çºî¤é¤ì¤ë¡£¤³¤³¤Ç prefix ¤Ï´û½Ð¤Î -iprefix ¤Ç»ØÄꤵ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ò¤Þ¤À»ØÄꤷ¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥³¥ó¥Ñ¥¤¥é¤Î¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥Ñ¥¹¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤¬¥Ç¥Õ¥©¥ë¥È¤È¤·¤Æ»È¤ï¤ì¤ë¡£
-iwithprefixbefore dir
¼ç¤È¤Ê¤ë¥¤¥ó¥¯¥ë¡¼¥É¥Ñ¥¹¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤롣Äɲ乤ë¥Ç¥£¥ì¥¯¥È¥ê̾¤Ï¡¢-iwithprefix ¤Î¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ë¡¢prefix ¤È dir ¤ò¤Ä¤Ê¤²¤Æºî¤é¤ì¤ë¡£
-isystem dir
¥Ç¥£¥ì¥¯¥È¥ê¤ò°ì¸Ä¡¢ÂèÆó¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Ñ¥¹¤ÎÀèÆ¬¤ËÄɲä·¡¢¤½¤ì¤ò¥·¥¹¥Æ¥à¤Î¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ°õ¤òÉÕ¤±¡¢É¸½à¤Î¥·¥¹¥Æ¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬¼õ¤±¤ë¤Î¤ÈƱ¤¸ÆÃÊ̤ʰ·¤¤¤ò¼õ¤±¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡£
-nostdinc
¥·¥¹¥Æ¥àɸ½à¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤·¤Ê¤¤¡£-I ¤Ç»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê(¤È¡¢Å¬ÀڤǤ¢¤ì¤Ð¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê) ¤À¤±¤ò¸¡º÷¤¹¤ë¡£-I ¤Ë¤Ä¤¤¤Æ¤Ï See Directory Options¡£

-nostdinc ¤È -I- ¤òξÊý»È¤¦¤È¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î¸¡º÷¥Ñ¥¹¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤À¤±¸ÂÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

-undef
Èóɸ½à¥Þ¥¯¥í¤Ï²¿¤âÄêµÁºÑ¤È¤·¤Ê¤¤¡£(¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÃΤ餻¤ë¥Õ¥é¥°¤â´Þ¤à¡£)
-E
C ¥×¥ê¥×¥í¥»¥Ã¥µ¤Î¤ß¤ò¼Â¹Ô¤¹¤ë¡£»ØÄꤵ¤ì¤¿Á´¤Æ¤Î C ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¥×¥ê¥×¥í¥»¥¹¤·¡¢·ë²Ì¤òɸ½à½ÐÎϤ«»ØÄꤵ¤ì¤¿½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤ¹¤ë¡£
-C
¥×¥ê¥×¥í¥»¥Ã¥µ¤Ë¥³¥á¥ó¥È¤ò½üµî¤·¤Ê¤¤¤è¤¦¤Ë»Ø¼¨¤¹¤ë¡£-E ¥ª¥×¥·¥ç¥ó¤È¹ç¤ï¤»¤Æ»È¤ï¤ì¤ë¡£
-P
¥×¥ê¥×¥í¥»¥Ã¥µ¤Ë #line À©¸æ»Ò¤òÀ¸À®¤·¤Ê¤¤¤è¤¦¤Ë»Ø¼¨¤¹¤ë¡£-E ¥ª¥×¥·¥ç¥ó¤È¹ç¤ï¤»¤Æ»È¤ï¤ì¤ë¡£
-M
³Æ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î°Í¸¥Õ¥¡¥¤¥ë¤òµ­½Ò¤¹¤ë make ¤Î¥ë¡¼¥ë¤ËŬ¤·¤¿½ÐÎϤò¹Ô¤Ê¤¦¤è¤¦¥×¥ê¥×¥í¥»¥Ã¥µ¤Ë»Ø¼¨¤¹¤ë¡£¥×¥ê¥×¥í¥»¥Ã¥µ¤Ï¡¢³Æ¥½¡¼¥¹¥Õ¥¡¥¤¥ëËè¤Ë make ¤Î¥ë¡¼¥ë¤ò°ì¤Ä½ÐÎϤ¹¤ë¡£¤½¤Î¥ë¡¼¥ë¤Î¥¿¡¼¥²¥Ã¥È¤Ï¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂбþ¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë̾¤Ç¤¢¤ê¡¢°Í¸¥Õ¥¡¥¤¥ë¤Ï¤½¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤¬#include ¤·¤Æ¤¤¤ëÁ´¤Æ¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£¤³¤Î¥ë¡¼¥ë¤Ï°ì¹Ô¤Ç¤âÎɤ¤¤·¡¢Ä¹¤±¤ì¤Ð \-²þ¹Ô ¤Ç·Ñ³¤·¤Æ¤âÎɤ¤¡£¥ë¡¼¥ë¤Î¥ê¥¹¥È¤Ï¡¢Á°½èÍýºÑ¤ß¤Î C ¥×¥í¥°¥é¥à¤Ç¤Ï¤Ê¤¯¡¢É¸½à½ÐÎϤ˽ÐÎϤµ¤ì¤ë¡£

-M ¤Ë¤Ï -E ¤¬´Þ¤Þ¤ì¤ë¡£

make ¤Î¥ë¡¼¥ë¤Î½ÐÎϤò»ØÄꤹ¤ë¤â¤¦°ì¤Ä¤ÎÊýË¡¤Ï¡¢´Ä¶­ÊÑ¿ô DEPENDENCIES_OUTPUT ¤òÀßÄꤹ¤ë¤³¤È¤Ç¤¢¤ë(see Environment Variables)¡£

-MM
-M ¤ÈƱÍͤÀ¤¬¡¢#include "file" ¤Î·Á¼°¤Ç¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤À¤±¤ò½ÐÎϤ¹¤ë¡£#include <file> ¤Î·Á¼°¤Ç¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¥·¥¹¥Æ¥à¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï½ü¤«¤ì¤ë¡£
-MD
-M ¤ÈƱÍͤÀ¤¬¡¢°Í¸´Ø·¸¾ðÊó¤Ï¡¢ÆþÎÏ¥Õ¥¡¥¤¥ë̾¤ÎºÇ¸å¤Î ".c" ¤ò".d" ¤ËÃÖ¤­´¹¤¨¤¿¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤµ¤ì¤ë¡£¤³¤ì¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤¦¤¨¤Ç¹Ô¤Ê¤ï¤ì¤ë¡£-M ¤ÏÄ̾ï¤Î¥³¥ó¥Ñ¥¤¥ë¤Ï¹Ô¤Ê¤ï¤Ê¤¤¤¬¡¢-MD ¤Ï¹Ô¤Ê¤¦¡£

Mach ¤Ç¤Ï¡¢md ¤È¤¤¤¦¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ò»È¤Ã¤Æ¡¢Ê£¿ô¤Î°Í¸´Ø·¸¥Õ¥¡¥¤¥ë¤ò°ì¸Ä¤Î°Í¸´Ø·¸¤Ë¥Þ¡¼¥¸¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢make ¥³¥Þ¥ó¥É¤Ç»È¤¦¤Î¤ËŬ¤·¤¿¤â¤Î¤Ë¤Ê¤ë¡£

-MMD
-MD ¤ÈƱÍͤÀ¤¬¡¢¥æ¡¼¥¶¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¤ß¤ò½ÐÎϤ·¡¢¥·¥¹¥Æ¥à¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï½ÐÎϤ·¤Ê¤¤¡£
-MG
¸«Åö¤¿¤é¤Ê¤¤¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏÀ¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤È¤·¤Æ°·¤¤¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÈƱ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¤È²¾Äꤹ¤ë¡£-MG ¤ò»ØÄꤹ¤ë¤Ê¤é¡¢-M ¤« -MM ¤Î¤É¤Á¤é¤«¤â»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£-MG ¤Ï¡¢-MD ¤ä -MMD ¤ÈÁȤ߹ç¤ï¤»¤ë¤Î¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
-H
Ä̾ï¤Î½èÍý¤Ë²Ã¤¨¤Æ¡¢»È¤ï¤ì¤Æ¤¤¤ë³Æ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë̾¤òɽ¼¨¤¹¤ë¡£
-Aquestion(answer)
question ¤ËÂФ¹¤ë²óÅú answer ¤òɽÌÀ¤¹¤ë¡£¤½¤ì¤Ï¡¢#if #question(answer) ¤Î¤è¤¦¤ÊÁ°½èÍý¤Î¾ò·ïʸ¤Ç¥Æ¥¹¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£-A- ¤Ï¡¢ÉáÄÌ¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤òµ­½Ò¤¹¤ëɸ½à¤ÎɽÌÀ¤ò̵¸ú¤Ë¤¹¤ë¡£
-Dmacro
¥Þ¥¯¥í¤ò macro ¤òÄêµÁ¤·¡¢Ê¸»úÎó 1 ¤ò¤½¤ÎÄêµÁ¤È¤¹¤ë¡£
-Dmacro=defn
¥Þ¥¯¥í macro ¤ò defn ¤È¤·¤ÆÄêµÁ¤¹¤ë¡£¥³¥Þ¥ó¥É¹Ô¤Ë¸½¤ì¤ëÁ´¤Æ¤Î -D ¤Ï¡¢¤É¤Î -U ¥ª¥×¥·¥ç¥ó¤è¤ê¤âÁ°¤Ë½èÍý¤µ¤ì¤ë¡£
-Umacro
¥Þ¥¯¥í macro ¤ò̤ÄêµÁ¤Ë¤¹¤ë¡£-U ¥ª¥×¥·¥ç¥ó¤Ï¡¢Á´¤Æ¤Î -D ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ç¡¢-include ¤È -imacros ¥ª¥×¥·¥ç¥ó¤ÎÁ°¤Ëɾ²Á¤µ¤ì¤ë¡£
-dM
¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÂФ·¡¢Á°½èÍý¤Î½ªÎ»Ãʳ¬¤ÇÍ­¸ú¤Ê¥Þ¥¯¥íÄêµÁ¤Î°ìÍ÷¤À¤±¤ò½ÐÎϤ¹¤ë¤³¤È¤ò»Ø¼¨¤¹¤ë¡£-E ¤ÈÁȤ߹ç¤ï¤»¤Æ»È¤¦¡£
-dD
¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÂФ·¡¢Á´¤Æ¤Î¥Þ¥¯¥íÄêµÁ¤ò½ÐÎϤ¹¤ë¤³¤È¤ò»Ø¼¨¤¹¤ë¡£¥Þ¥¯¥íÄêµÁ¤Ï¡¢¤½¤ì°Ê³°¤Î½ÐÎÏÃæ¤Ë¸µ¡¹¤Î½çÈ֤Ǹ½¤ì¤ë¡£
-dN
-dD ¤ÈƱÍͤÀ¤¬¡¢¥Þ¥¯¥í°ú¿ô¤ÈŸ³«ÆâÍÆ¤¬¾Êά¤µ¤ì¤ë¡£#define name ¤À¤±½ÐÎϤ¹¤ë¡£
-trigraphs
ANSI C ¤Î¥È¥ê¥°¥é¥Õ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£-ansi ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤â¤³¤Î¸ú²Ì¤¬¤¢¤ë¡£
-Wp,option
option ¤ò¥×¥ê¥×¥í¥»¥Ã¥µ¤Ø¤Î¥ª¥×¥·¥ç¥ó¤È¤·¤ÆÅϤ¹¡£option ¤Ë¥«¥ó¥Þ¤¬Æþ¤Ã¤Æ¤¤¤ë¤È¡¢¥«¥ó¥Þ¤Î¤È¤³¤í¤ÇÊ£¿ô¤Î¥ª¥×¥·¥ç¥ó¤Ëʬ³ä¤µ¤ì¤ë¡£


Node:Assembler Options, Next:, Previous:Preprocessor Options, Up:Invoking GCC

¥¢¥»¥ó¥Ö¥é¤ËÅϤµ¤ì¤ë¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¡¢¥¢¥»¥ó¥Ö¥é¤Ë¥ª¥×¥·¥ç¥ó¤òÅϤ¹¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£

-Wa,option
option ¤ò¥¢¥»¥ó¥Ö¥é¤Ë¥ª¥×¥·¥ç¥ó¤È¤·¤ÆÅϤ¹¡£option ¤¬¥³¥ó¥Þ¤ò´Þ¤ó¤Ç¤¤¤ë¤Ê¤é¡¢¥³¥ó¥Þ¤ÇÊ£¿ô¤Î¥ª¥×¥·¥ç¥ó¤Ëʬ³ä¤µ¤ì¤ë¡£


Node:Link Options, Next:, Previous:Assembler Options, Up:Invoking GCC

¥ê¥ó¥¯¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤Ë¥ê¥ó¥¯¤¹¤ë¤È¤­¤Ë´Ø·¸¤·¤Æ¤¯¤ë¡£¥³¥ó¥Ñ¥¤¥é¤¬¥ê¥ó¥¯¤ÎÃʳ¬¤ò¹Ô¤Ê¤ï¤Ê¤¤¤Ê¤é¡¢¤³¤ì¤é¤Ï°ÕÌ£¤¬¤Ê¤¤¡£

object-file-name
ÆÃÊ̤Ëǧ¼±¤µ¤ì¤ë¥µ¥Õ¥£¥Ã¥¯¥¹¤Ç½ª¤ï¤Ã¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤«¥é¥¤¥Ö¥é¥ê¤ò¼¨¤¹¤â¤Î¤È¹Í¤¨¤é¤ì¤ë¡£(¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ë½¾¤Ã¤Æ¡¢¥ê¥ó¤«¤Ë¤è¤ê¥é¥¤¥Ö¥é¥ê¤È¶èÊ̤µ¤ì¤ë¡£)¥ê¥ó¥¯¤¬¹Ô¤Ê¤ï¤ì¤ë¤È¡¢¤³¤ì¤é¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ï¥ê¥ó¥«¤Ø¤ÎÆþÎϤȤ·¤Æ»È¤ï¤ì¤ë¡£
-c
-S
-E
¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Î¤É¤ì¤«¤¬»ØÄꤵ¤ì¤ë¤È¡¢¥ê¥ó¥«¤Ïµ¯Æ°¤µ¤ì¤Ê¤¤¡£¤Þ¤¿¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë̾¤Ï°ú¿ô¤È¤·¤ÆÍ¿¤¨¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£See Overall Options.
-llibrary
¥ê¥ó¥¯»þ¤Ë library ¤È¤¤¤¦Ì¾Á°¤Î¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥³¥Þ¥ó¥É¹Ô¤Î¤É¤³¤ËÃÖ¤¤¤¿¤«¤Ç°ã¤¤¤¬½Ð¤Æ¤¯¤ë¡£¥ê¥ó¥«¤Ï¡¢¥é¥¤¥Ö¥é¥ê¤È¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò»ØÄꤵ¤ì¤¿½çÈ֤˸¡º÷¤·¡¢½èÍý¤¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢foo.o -lz bar.o ¤È¤·¤¿¾ì¹ç¡¢¥é¥¤¥Ö¥é¥ê z ¤Ï¡¢¥Õ¥¡¥¤¥ë foo.o ¤Î¸å¤Ç¡¢bar.o ¤ÎÁ°¤Ë¸¡º÷¤µ¤ì¤ë¡£¤â¤· bar.o ¤¬ z Æâ¤Î´Ø¿ô¤ò»²¾È¤·¤Æ¤¤¤Æ¤â¡¢¤½¤Î´Ø¿ô¤Ï¥í¡¼¥É¤µ¤ì¤Ê¤¤¡£

¥ê¥ó¥«¤Ï¡¢É¸½à¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤«¤é¥é¥¤¥Ö¥é¥ê¤òõ¤¹¡£¼¡¤Ë¡¢¸«¤Ä¤±¤¿¥Õ¥¡¥¤¥ë¤ò¡¢Àµ³Î¤Ê̾Á°¤Ç»ØÄꤵ¤ì¤¿¤«¤Î¤è¤¦¤Ë»È¤¦¡£

¸¡º÷¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢´ö¤Ä¤«¤Îɸ½à¤Î¥·¥¹¥Æ¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Î¾¤Ë¡¢-L ¤Ç»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬²Ã¤ï¤ë¡£

ÉáÄ̤³¤¦¤·¤Æ¸«¤Ä¤«¤ë¥Õ¥¡¥¤¥ë¤Ï¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¡¢¤¹¤Ê¤ï¤Á¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥á¥ó¥Ð¤È¤¹¤ë¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£¥ê¥ó¥«¤Î¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Î°·¤¤Êý¤Ï¡¢¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤òÁöºº¤·¤Æ¡¢¤³¤ì¤Þ¤Ç¤Ë»²¾È¤µ¤ì¤Æ¤¤¤ë¤¬ÄêµÁ¤Ï¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥ó¥Ü¥ë¤òÄêµÁ¤·¤Æ¤¤¤ë¥á¥ó¥Ð¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤òõ¤¹¡£¤À¤¬¡¢¤³¤¦¤·¤Æ¸«¤Ä¤±¤¿¥Õ¥¡¥¤¥ë¤¬Ä̾ï¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤À¤Ã¤¿¾ì¹ç¤Ï¡¢ÉáÄ̤˥ê¥ó¥¯¤µ¤ì¤ë¡£-l ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤Î¤È¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤹ¤ë¤Î¤È¤Î°ã¤¤¤Ï¡¢-l ¤Ï library ¤ÎÁ°¸å¤Ëlib ¤È .a ¤òÉÕ¤±¤Æ¡¢¿§¡¹¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤ò¸¡º÷¤¹¤ë¤È¤¤¤¦ÅÀ¤Ë¤¢¤ë¡£

-lobjc
¤³¤ÎÆÃÊÌ¤Ê -l ¥ª¥×¥·¥ç¥ó¤Ï¡¢Objective C ¤Î¥×¥í¥°¥é¥à¤ò¥ê¥ó¥¯¤¹¤ë¤Î¤ËɬÍפǤ¢¤ë¡£
-nostartfiles
¥ê¥ó¥¯»þ¤Ë¥·¥¹¥Æ¥àɸ½à¤Îµ¯Æ°¥Õ¥¡¥¤¥ë¤ò»È¤ï¤Ê¤¤¡£¥·¥¹¥Æ¥à¤Îɸ½à¥é¥¤¥Ö¥é¥ê¤ÎÊý¤Ï¡¢-nostdlib ¤ä-nodefaultlibs ¤ò»ØÄꤷ¤Ê¤¤¸Â¤ê¡¢ÉáÄ̤ϻȤï¤ì¤ë¡£
-nodefaultlibs
¥ê¥ó¥¯»þ¤Ë¥·¥¹¥Æ¥àɸ½à¤Î¥é¥¤¥Ö¥é¥ê¤ò»È¤ï¤Ê¤¤¡£ÌÀ¼¨Åª¤Ë»ØÄꤷ¤¿¥é¥¤¥Ö¥é¥ê¤À¤±¤¬¥ê¥ó¥«¤ËÅϤµ¤ì¤ë¡£-nostartfiles ¤ò»ØÄꤷ¤Ê¤¤¸Â¤ê¡¢É¸½à¤Îµ¯Æ°¥Õ¥¡¥¤¥ë¤¬ÉáÄ̤ϻȤï¤ì¤ë¡£GCC ¤Ï System V (¤½¤ì¤Ë ANSI C) ¤Î´Ä¶­¸þ¤±¤Ë¤Ïmemcmp¡¢memset¡¢memcpy ¤Î¸Æ½Ð¤·¤òÀ¸À®¤·¡¢BSD ´Ä¶­¸þ¤±¤Ë¤Ï bcopy ¤È bzero ¤Î¸Æ½Ð¤·¤òÀ¸À®¤¹¤ë¤À¤í¤¦¡£¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¤ÏÄ̾ï libc Æâ¤Î¥¨¥ó¥È¥ê¤Ç²ò·è¤µ¤ì¤ë¡£¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¡¦¥Ý¥¤¥ó¥È¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿»þ¤Ë¤Ï¡¢²¿¤«Â¾¤Î»ÅÁȤߤˤè¤Ã¤ÆÄ󶡤µ¤ì¤ëɬÍפ¬¤¢¤ë¡£
-nostdlib
¥ê¥ó¥¯»þ¤Ë¡¢¥·¥¹¥Æ¥àɸ½à¤Îµ¯Æ°¥Õ¥¡¥¤¥ë¤ä¥é¥¤¥Ö¥é¥ê¤ò»È¤ï¤Ê¤¤¡£¥ê¥ó¥«¤Ë¤Ï¡¢µ¯Æ°¥Õ¥¡¥¤¥ë¤ÏÅϤµ¤ì¤º¡¢¥é¥¤¥Ö¥é¥ê¤ÏÌÀ¼¨Åª¤Ë»ØÄꤷ¤¿¤â¤Î¤À¤±¤¬ÅϤµ¤ì¤ë¡£GCC ¤Ï System V (¤½¤ì¤Ë ANSI C) ¤Î´Ä¶­¸þ¤±¤Ë¤Ïmemcmp¡¢memset¡¢memcpy ¤Î¸Æ½Ð¤·¤òÀ¸À®¤·¡¢BSD ´Ä¶­¸þ¤±¤Ë¤Ï bcopy ¤È bzero ¤Î¸Æ½Ð¤·¤òÀ¸À®¤¹¤ë¤À¤í¤¦¡£¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¤ÏÄ̾ï libc Æâ¤Î¥¨¥ó¥È¥ê¤Ç²ò·è¤µ¤ì¤ë¡£¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¡¦¥Ý¥¤¥ó¥È¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿»þ¤Ë¤Ï¡¢²¿¤«Â¾¤Î»ÅÁȤߤˤè¤Ã¤ÆÄ󶡤µ¤ì¤ëɬÍפ¬¤¢¤ë¡£

-nostdlib ¤È -nodefaultslibs ¤Ë±Æ¶Á¤ò¼õ¤±¤Ê¤¤É¸½à¥é¥¤¥Ö¥é¥ê¤Î°ì¤Ä¤Ë libcc.a ¤¬¤¢¤ë¡£¤³¤ì¤Ï¡¢GCC ¤¬ÆâÉôŪ¤Ë»È¤¦¥µ¥Ö¥ë¡¼¥Á¥ó¥é¥¤¥Ö¥é¥ê¤Ç¤¢¤ê¡¢ÆÃÄê¤Îµ¡¼ï¤Îµ¡Ç½¤ÎÉÔ­¤ä¡¢´ö¤Ä¤«¤Î¸À¸ì¤ÇÆÃÊ̤ËɬÍפˤʤ뵡ǽ¤òÄ󶡤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£(libgcc.a ¤Ë¤Ä¤¤¤Æ¤Î¤µ¤é¤Ë¾Ü¤·¤¤µÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï¡¢See Interfacing to GCC Output.) ¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢Â¾¤Îɸ½à¥é¥¤¥Ö¥é¥ê¤ò»È¤¤¤¿¤¯¤Ê¤¤¤È¤­¤Ç¤â libgcc.a ¤ÏɬÍפˤʤ롣¸À¤¤´¹¤¨¤ë¤È¡¢-nostdlib ¤ä -nodefaultlibs ¤ò»ØÄꤹ¤ë¤È¤­¤Ë¤Ï¡¢ÉáÄÌ¤Ï -lgcc ¤â»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢GCC ÆâÉô¤Î¥é¥¤¥Ö¥é¥ê¥µ¥Ö¥ë¡¼¥Á¥ó¤ËÂФ¹¤ë̤²ò·è»²¾È¤¬¤Ê¤¯¤Ê¤ë¤³¤È¤òÊݾڤ¹¤ë¡£(Î㤨¤Ð¡¢__main ¤Ï¡¢C++ ¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¸Æ¤Ð¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£see collect2¡£)

-s
¼Â¹Ô·Á¼°¤«¤é¡¢¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ÈºÆÇÛÃÖ¾ðÊó¤òÁ´¤Æºï½ü¤¹¤ë¡£
-static
¥À¥¤¥Ê¥ß¥Ã¥¯¥ê¥ó¥¯¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¶¦Í­¥é¥¤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¤Î¤òËɤ°¡£Â¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¡£
-shared
¾¤Î¥ª¥Ö¥¸¥§¥¯¥È¤È¥ê¥ó¥¯¤·¤Æ¼Â¹Ô·Á¼°¤òºî¤ë¤³¤È¤¬²Äǽ¤Ê¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÁ´¤Æ¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¤­¤Ë¤Ï¡¢-fpic ¤ä-fPIC ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-symbolic
¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤ò¹½ÃÛ¤¹¤ëºÝ¤Ë¡¢¥°¥í¡¼¥Ð¥ë¥·¥ó¥Ü¥ë¤ËÂФ¹¤ë»²¾È¤ò·ë¹ç¤¹¤ë¡£Ì¤²ò·è¤Î»²¾È¤Ë¤Ä¤¤¤Æ¤Ï·Ù¹ð¤ò½Ð¤¹(¤¿¤À¤·¡¢¥ê¥ó¥¯¥¨¥Ç¥£¥¿¤Î¥ª¥×¥·¥ç¥ó -Xlinker -z -Xlinker defs ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç)¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ï¡¢Æó¡¢»°¼ïÎष¤«¤Ê¤¤¡£
-Xlinker option
option ¤ò¥ê¥ó¥«¤Ø¤Î¥ª¥×¥·¥ç¥ó¤È¤·¤ÆÅϤ¹¡£¤³¤ì¤ò»È¤¦¤È¡¢GCC ¤Ë¤Ïǧ¼±¤¹¤ëÊýË¡¤¬Ê¬¤«¤é¤Ê¤¤¡¢¥·¥¹¥Æ¥à¸ÇÍ­¤Î¥ê¥ó¥«¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

°ú¿ô¤ò¼è¤ë¥ª¥×¥·¥ç¥ó¤òÅϤ·¤¿¤¤¾ì¹ç¤Ï¡¢-Xlinker ¤òÆó²ó»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£°ì¤Ä¤Ï¤½¤Î¥ª¥×¥·¥ç¥óÍѤǡ¢¤â¤¦°ì¤Ä¤Ï°ú¿ôÍѤǤ¢¤ë¡£Î㤨¤Ð¡¢-assert definitions ¤òÅϤ¹¤Ë¤Ï¡¢-Xlinker -assert -Xlinker definitions ¤È½ñ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£-Xlinker "-assert definitions" ¤È½ñ¤¤¤¿¤Î¤Ç¤Ï¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¡£²¿¸Î¤Ê¤é¡¢¤³¤ì¤Ïʸ»úÎóÁ´ÂΤò°ì¸Ä¤Î°ú¿ô¤È¤·¤ÆÅϤ¹¤Î¤Ç¡¢¥ê¥ó¥«¤¬´üÂÔ¤·¤Æ¤¤¤ë¤Î¤È¤Ï°ã¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£

-Wl,option
option ¤ò¥ê¥ó¥«¤Ø¤Î¥ª¥×¥·¥ç¥ó¤È¤·¤ÆÅϤ¹¡£option ¤Ë¥«¥ó¥Þ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢¥³¥ó¥Þ¤Î¤È¤³¤í¤ÇÊ£¿ô¤Î¥ª¥×¥·¥ç¥ó¤Ëʬ³ä¤µ¤ì¤ë¡£
-u symbol
¥·¥ó¥Ü¥ë symbol ¤ò̤ÄêµÁ¤È¤·¡¢¤½¤Î¥·¥ó¥Ü¥ë¤òÄêµÁ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¥â¥¸¥å¡¼¥ë¤ò¶¯À©Åª¤Ë¥ê¥ó¥¯¤¹¤ë¡£-u ¤ò¥ª¥×¥·¥ç¥ó¤òÊ£¿ô¡¢°Û¤Ê¤ë¥·¥ó¥Ü¥ë¤ËÂФ·¤Æ»È¤¦¤È¡¢Äɲäǥ饤¥Ö¥é¥ê¥â¥¸¥å¡¼¥ë¤ò¶¯À©Åª¤Ë¥í¡¼¥É¤Ç¤­¤ë¡£


Node:Directory Options, Next:, Previous:Link Options, Up:Invoking GCC

¥Ç¥£¥ì¥¯¥È¥ê¸¡º÷ÍÑ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ä¥é¥¤¥Ö¥é¥ê¤ä GCC ¤Î¹½À®Éôʬ¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤹ¤ë¡£

-Idir
¥Ç¥£¥ì¥¯¥È¥ê dir ¤ò¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ÎÀèÆ¬¤ËÄɲ乤롣¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤³¤È¤Ë¤è¤ê¡¢¥·¥¹¥Æ¥à¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òÆÉ¼Ô¼«¿È¤Î¥Ð¡¼¥¸¥ç¥ó¤ÇÃÖ¤­´¹¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤È¤¤¤¦¤Î¤Ï¡¢¤³¤³¤Ç»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥·¥¹¥Æ¥à¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¥Ç¥£¥ì¥¯¥È¥ê¤è¤ê¤âÁ°¤Ë¸¡º÷¤µ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£-I ¥ª¥×¥·¥ç¥ó¤òÊ£¿ô²ó»ØÄꤷ¤¿¾ì¹ç¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ïº¸¤«¤é±¦¤Ø¸¡º÷¤µ¤ì¤ë¡£¥·¥¹¥Æ¥àɸ½à¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¤½¤Î¸å¤Ë¸¡º÷¤µ¤ì¤ë¡£
-I-
-I- ¥ª¥×¥·¥ç¥ó¤ÎÁ°¤Ç -I ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢#include "file" ¤Î·Á¼°¤Î¾ì¹ç¤·¤«¸¡º÷¤µ¤ì¤Ê¤¤¡£#include <file> ¤ËÂФ·¤Æ¤Ï¸¡º÷¤µ¤ì¤Ê¤¤¤Î¤Ç¤¢¤ë¡£

-I- ¤Î¸å¤Ç -I ¤ÇÄɲäǥǥ£¥ì¥¯¥È¥ê¤¬»ØÄꤵ¤ì¤¿¤é¡¢¤³¤ì¤é¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¤¹¤Ù¤Æ¤Î #include ʸ¤Ç¸¡º÷¤µ¤ì¤ë¡£(Ä̾ï¤Ï¡¢-I ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ÏÁ´¤Æ¡¢¤³¤Î¤è¤¦¤Ë»È¤ï¤ì¤ë¡£)

¤µ¤é¤Ë¡¢-I- ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢#include "file" ¤ËÂФ·¤ÆºÇ½é¤Ë¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê(¤³¤ì¤Ï¸½ºß¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤È¤³¤í¤Ç¤¢¤ë)¤ò»È¤¦¤Î¤ò¶Ø¤º¤ë¡£-I- ¤Î¤³¤Î¸ú²Ì¤òÊѤ¨¤ëÊýË¡¤Ï¤Ê¤¤¡£-I. ¤ò»ØÄꤹ¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬µ¯Æ°¤·¤¿¤È¤­¤Î¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤Ï¡¢¥×¥ê¥×¥í¥»¥Ã¥µ¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¹Ô¤Ê¤¦½èÍý¤ÈÀµ³Î¤ËƱ¤¸¤Ç¤Ï¤Ê¤¤¤¬¡¢½¼Ê¬¤Ê¤³¤È¤¬Â¿¤¤¡£

-I- ¤Ï¡¢¥·¥¹¥Æ¥àɸ½à¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò»È¤¦¤³¤È¤Ï˸¤²¤Ê¤¤¡£¤Ä¤Þ¤ê¡¢-I- ¤È -nostdinc ¤ÏÆÈΩ¤Ç¤¢¤ë¡£

-Ldir
-l ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤Ë¥Ç¥£¥ì¥¯¥È¥ê dir ¤òÄɲ乤롣
-Bprefix
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢GCC ¼«¿È¤¬»ÈÍѤ¹¤ë¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¡¢¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¡¢¤½¤ì¤Ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤òõ¤¹¾ì½ê¤ò»ØÄꤹ¤ë¡£

GCC ¤Î¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à¤Ï¡¢¥µ¥Ö¥×¥í¥°¥é¥à cpp¡¢cc1¡¢as¡¢ld ¤Î¾¯¤Ê¤¯¤È¤â°ì¤Ä¤ò¼Â¹Ô¤¹¤ë¡£prefix ¤ò¼Â¹Ô¤ò»î¤ß¤ë³Æ¥×¥í¥°¥é¥à¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤È¤·¤Æ»î¤¹¡£¤³¤Î»þ¡¢machine/version/ (see Target Options) ¤òÉÕ¤±¤ë¤Î¤ÈÉÕ¤±¤Ê¤¤¤Î¤òξÊý»î¤¹¡£

¼Â¹Ô¤¹¤Ù¤­¥µ¥Ö¥×¥í¥°¥é¥àËè¤Ë¡¢GCC ¤Î¥É¥é¥¤¥Ð¤Ï¡¢»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¤Þ¤º -B ¤Ë¤è¤ë¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ò»î¤¹¡£¤½¤Î̾Á°¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¤ê¡¢-B ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥É¥é¥¤¥Ð¤Ïɸ½àŪ¤Ê¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤òÆó¤Ä»î¤¹¡£/usr/lib/gcc/ ¤È /usr/local/lib/gcc-lib/ ¤Ç¤¢¤ë¡£¤³¤Î¤É¤Á¤é¤ò»È¤Ã¤Æ¤â¥Õ¥¡¥¤¥ë̾¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢¥×¥í¥°¥é¥à̾¤ò¤½¤Î¤Þ¤Þ»È¤Ã¤Æ¡¢´Ä¶­ÊÑ¿ô PATH ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò¸¡º÷¤¹¤ë¡£

-B ¤Ë¤è¤ë¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ï¡¢¥ê¥ó¥«¤¬¥ê¥ó¥¯¤¹¤ë¥é¥¤¥Ö¥é¥ê¤Ë¤âŬÍѤµ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê̾¤ò»ØÄꤹ¤ë¡£¤³¤ì¤Ï GCC ¤¬¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥ê¥ó¥«ÍѤΠ-L ¥ª¥×¥·¥ç¥ó¤ËÊÑ´¹¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£¤Þ¤¿¥×¥ê¥×¥í¥»¥Ã¥µ¤¬¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¥Õ¥¡¥¤¥ë¤Ë¤âŬÍѤµ¤ì¤ë¡£GCC ¤¬¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥×¥ê¥×¥í¥»¥Ã¥µÍѤΠ-isystem ¥ª¥×¥·¥ç¥ó¤ËÊÑ´¹¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¡¢GCC ¤Ï include ¤ò¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ËÄɲ乤롣

¼Â¹Ô»þ¥µ¥Ý¡¼¥È¥Õ¥¡¥¤¥ë libgcc.a ¤â¡¢É¬ÍפǤ¢¤ì¤Ð -B ¤Ë¤è¤ë¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¸¡º÷¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£-B ¤Ç»ØÄꤷ¤¿¾ì½ê¤Ë¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¾å½Ò¤ÎÆó¤Ä¤Îɸ½à¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤¬»î¤µ¤ì¤ë¡£¤µ¤é¤Ê¤ë¸¡º÷¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¤¡£¤³¤ì¤é¤Î¼êÃʤǸ«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¥Õ¥¡¥¤¥ë¤Ï¡¢¥ê¥ó¥¯»þ¤Ë¤½¤Î¤Þ¤Þ»Ä¤µ¤ì¤ë¡£

-B ¤Ë¤è¤ë¥×¥ì¥Õ¥£¥Ã¥¯¥¹»ØÄê¤ÈÎɤ¯»÷¤¿¤â¤¦°ì¤Ä¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹»ØÄêÊýË¡¤È¤·¤Æ´Ä¶­ÊÑ¿ô GCC_EXEC_PREFIX ¤ò»È¤¦ÊýË¡¤¬¤¢¤ë¡£See Environment Variables¡£

-specs=file
GCC ¤¬É¸½à¤Î specs ¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ó¤À¸å¤Ëfile ¤ò½èÍý¤·¡¢¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à¤Ç¤¢¤ë gcc ¤¬¡¢cc1 ¤äcc1plus¡¢as¡¢ld Åù¤ËÅϤ¹¤Ù¤­¥ª¥×¥·¥ç¥ó¤ò·èÄꤹ¤ë¤È¤­¤Ë»È¤¦¥Ç¥Õ¥©¥ë¥È¤òÊѹ¹¤¹¤ë¡£-specs=file ¤Ï¥³¥Þ¥ó¥É¹Ô¤ÇÊ£¿ô»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¡¢¤½¤Î¾ì¹ç¡¢º¸¤«¤é±¦¤Ø½ç¤Ë½èÍý¤µ¤ì¤ë¡£


Node:Target Options, Next:, Previous:Directory Options, Up:Invoking GCC

¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤È¥³¥ó¥Ñ¥¤¥é¥Ð¡¼¥¸¥ç¥ó¤Î»ØÄê

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢GCC ¤Ï¡¢ÆÉ¼Ô¤¬»È¤Ã¤Æ¤¤¤ë¤Î¤ÈƱ¤¸¥¿¥¤¥×¤Îµ¡¼ïÍѤ˥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£¤À¤¬¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤â¤Ç¤­¡¢²¿¤«Â¾¤Î¥¿¥¤¥×¤Îµ¡¼ïÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¢¤ë¡£¼ÂºÝ¡¢¿§¡¹¤Ê¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Î GCC ¤ò¡¢¿§¡¹¤ÊÂоݵ¡¼ï¤ËÂФ·¤Æ¡¢Æ±¤¸¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£¤½¤Î¤É¤ì¤ò»È¤¦¤«¤Ï¡¢-b ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¡£

¤µ¤é¤Ë¡¢GCC ¤ÎµìÈǤȿ·ÈÇ¤âÆ±¤¸¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤Î¤¦¤Á¤Î°ì¤Ä(¤ª¤½¤é¤¯ºÇ¿·ÈÇ)¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ë¤¬¡¢Ê̤ÎÈǤò»È¤¤¤¿¤¤¤È¤­¤â¤¢¤ë¤À¤í¤¦¡£

-b machine
°ú¿ô machine ¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤ÎÂоݤȤʤ뵡¼ï¤ò»ØÄꤹ¤ë¡£GCC ¤ò¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤È¤­¤ËÊØÍø¤Ç¤¢¤ë¡£

machine ¤ÎÃͤϡ¢GCC ¤ò¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤·¤¿¤È¤­¤Ë»ØÄꤷ¤¿¤Î¤ÈƱ¤¸µ¡¼ï¤Ë¤Ê¤ë¡£Î㤨¤Ð¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤¬configure i386v ¤È¤·¤Æ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤Æ¤¤¤ë¤Ê¤é¡¢¤³¤ì¤Ï System V ¤Î²ÔƯ¤¹¤ë 80386 ¥Þ¥·¥ó¸þ¤±¤Ë¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤ò°ÕÌ£¤·¡¢¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¸þ¤±¤Î¥³¥ó¥Ñ¥¤¥é¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï-b i386v ¤È»ØÄꤹ¤ë¡£

-b ¤ò»ØÄꤷ¤Ê¤¤¤È¤­¤Ï¡¢ÉáÄÌ¤ÏÆÉ¼Ô¤¬»È¤Ã¤Æ¤¤¤ë¤Î¤ÈƱ¤¸·¿¤Îµ¡¼ïÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£

-V version
°ú¿ô version ¤Ï¡¢¼Â¹Ô¤¹¤ë GCC ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò»ØÄꤹ¤ë¡£¤³¤ì¤ÏÊ£¿ô¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤È¤­¤ËÌò¤ËΩ¤Ä¡£Î㤨¤Ð¡¢version ¤¬ 2.0 ¤Ê¤é¡¢GCC ¤Î¥Ð¡¼¥¸¥ç¥ó 2.0 ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£

-V ¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Î¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë GCC ¤Î¤¦¤ÁºÇ¿·ÈǤˤʤ롣

-b ¤È -V ¥ª¥×¥·¥ç¥ó¤Î¼ÂºÝ¤Î»ÅÁȤߤϡ¢¥³¥ó¥Ñ¥¤¥ë¤Ë»È¤¦¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤È¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë̾¤Î°ìÉô¤òÊѤ¨¤ë¤³¤È¤Ç¹Ô¤Ê¤ï¤ì¤ë¡£GCC ¤Î¥Ð¡¼¥¸¥ç¥ó¤È¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢/usr/local/lib/gcc-lib/machine/version ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤ËÄ̾ïÃÖ¤«¤ì¤Æ¤¤¤ë¡£

¤³¤Î¤¿¤á¡¢ÆÉ¼Ô¤Î¥µ¥¤¥È¤Ç¡¢-b ¤ä -V ¤Î¸ú²Ì¤ò¥«¥¹¥¿¥Þ¥¤¥º¤¹¤ë¤Ë¤Ï¡¢¤³¤ì¤é¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤òÊѤ¨¤¿¤ê¡¢Ê̤Î̾Á°(¤¢¤ë¤¤¤Ï¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯)¤òÄɲä·¤¿¤ê¤¹¤ì¤ÐÎɤ¤¡£¥Ç¥£¥ì¥¯¥È¥ê /usr/local/lib/gcc-lib/ ¤Ç¡¢80386 ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¡¢i386v ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢-b 80386 ¤Ï¡¢-b i386v ¤Î¤â¤¦°ì¤Ä¤Î»ØÄêÊýË¡¤Ë¤Ê¤ë¡£

¸«Êý¤Ë¤è¤Ã¤Æ¤Ï¡¢-b ¤ä -V ¤ò»ØÄꤷ¤¿¤«¤é¤È¸À¤Ã¤Æ¡¢´°Á´¤ËÊ̤ʥ³¥ó¥Ñ¥¤¥é¤ËÊѤï¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ºÇ½é¤Ëµ¯Æ°¤·¤¿ºÇ¾å°Ì¤Î¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à gcc ¤Ï¤½¤Î¤Þ¤Þư¤­Â³¤±¡¢¼ÂºÝ¤Î»Å»ö¤ò¹Ô¤Ê¤¦Â¾¤Î¼Â¹Ô·Á¼°(¥×¥ê¥×¥í¥»¥Ã¥µ¡¢¥³¥ó¥Ñ¥¤¥éËÜÂΡ¢¥¢¥»¥ó¥Ö¥é¡¢¥ê¥ó¥«)¤òµ¯Æ°¤¹¤ë¤Î¤Ç¤¢¤ë¡£¤·¤«¤·¡¢¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à¤Ï¼ÂºÝ¤Î»Å»ö¤Ï²¿¤â¤·¤Ê¤¤¤Î¤Ç¡¢¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à¤¬¡¢»ØÄꤷ¤¿¥¿¡¼¥²¥Ã¥È¤È¥Ð¡¼¥¸¥ç¥ó¸þ¤±¤Î¤â¤Î¤Ç¤Ê¤¯¤Æ¤âÉáÄ̤ÏÌäÂê¤Ï¤Ê¤¤¡£

¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à¤¬¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ë´Ø¤ï¤Ã¤Æ¤¯¤ëÍ£°ì¤ÎÅÀ¤Ï¡¢µ¡¼ï¸ÇÍ­¤ÎÆÃÊ̤ʥª¥×¥·¥ç¥ó¤Î¥Ñ¡¼¥¹¤È¼è°·¤¤¤Ç¤¢¤ë¡£¤·¤«¤·¡¢¤³¤ì¤â¾¤Î¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ëƱÍÍ¡¢»ØÄꤷ¤¿¥Ð¡¼¥¸¥ç¥ó¤È¥¿¡¼¥²¥Ã¥Èµ¡¼ïÍѤΥǥ£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Ë¤è¤êÀ©¸æ¤µ¤ì¤ë¤Î¤Ç¤¢¤ë¡£·ë¶É¡¢¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à¤¬°ì¸Ä¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¢¤ì¤Ð¡¢¤É¤Î¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤ä¥Ð¡¼¥¸¥ç¥ó¤ò»ØÄꤷ¤Æ¤âŬ¹ç¤¹¤ë¤Î¤Ç¤¢¤ë¡£

¤¿¤À¤·¡¢¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à¤Î¼Â¹Ô·Á¼°¤Ï¡¢°ì¤Ä½ÅÍפÊÅÀ¤ò¼è¤ê°·¤¦¡£¥Ç¥Õ¥©¥ë¥È¤Î¥Ð¡¼¥¸¥ç¥ó¤È¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à¤Î¼ÂÂΤò¡¢°Û¤Ê¤ë¥¿¡¼¥²¥Ã¥È¤È¥Ð¡¼¥¸¥ç¥ó¸þ¤±¤ËÊÌ¡¹¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¡¢Ê̤Î̾Á°¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤âÎɤ¤

¤¿¤È¤¨¤Ð¡¢¥Ð¡¼¥¸¥ç¥ó 2.0 ÍѤΥɥ饤¥Ð¤ò ogcc ¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¡¢¥Ð¡¼¥¸¥ç¥ó 2.1 ÍѤΤò gcc ¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ª¤¯¤È¡¢gcc ¤È¤¤¤¦¤Û¤¦¤Î¥³¥Þ¥ó¥É¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¥Ð¡¼¥¸¥ç¥ó 2.1 ¤ò»È¤¤¡¢ogcc ¤Î¥Ç¥Õ¥©¥ë¥È¤Ï 2.0 ¤Ë¤Ê¤ë¡£¤·¤«¤·¡¢¤É¤Á¤é¤Î¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¤â¡¢-V ¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤Ð¤É¤Á¤é¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤â»ØÄê¤Ç¤­¤ë¤Î¤Ç¤¢¤ë


Node:Submodel Options, Next:, Previous:Target Options, Up:Invoking GCC

¥Ï¡¼¥É¥¦¥§¥¢¥â¥Ç¥ë¤È¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó

°ÊÁ°¡¢É¸½à¤Î¥ª¥×¥·¥ç¥ó -b ¤Ë¤Ä¤¤¤ÆµÄÏÀ¤·¤¿¡£-b ¤Ï¡¢Á´¤¯°Û¤Ê¤ë¥¿¡¼¥²¥Ã¥Èµ¡¼ï¡¢Î㤨¤Ð¡¢Vax ¤È 68000 ¤È 80386 ÍѤΡ¢¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß¥³¥ó¥Ñ¥¤¥é¤ÎÃæ¤«¤éÁª¤Ö¡£

²Ã¤¨¤Æ¡¢³Æ¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ë¤Ï -m ¤Ç»Ï¤Þ¤ë¡¢µ¡¼ï¸ÇÍ­¤ÎÆÃÊ̤ʥª¥×¥·¥ç¥ó¤¬¤¢¤ê¡¢Î㤨¤Ð¡¢68010 ¤« 68020 ¤«¤È¤¤¤Ã¤¿¡¢¿§¡¹¤Ê¥Ï¡¼¥É¥¦¥§¥¢¤Î¥â¥Ç¥ë¤ä¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤«¤éÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£GCC ¤¬°ì¤Ä¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢»ØÄꤷ¤¿¥ª¥×¥·¥ç¥ó¤Ë½¾¤Ã¤Æ¡¢¤É¤Î¥â¥Ç¥ë¤ä¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ËÂФ·¤Æ¤â¥³¥ó¥Ñ¥¤¥ë¤¬²Äǽ¤Ç¤¢¤ë¡£

GCC ¤Î¤¢¤ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¡¢ÄÉ²Ã¤ÇÆÃÊ̤ʥª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ë¡£¤³¤ì¤Ï¡¢ÉáÄ̤ϡ¢Æ±¤¸¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Î¾¤Î¥³¥ó¥Ñ¥¤¥é¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë¤¢¤ë¡£

¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Þ¥·¥óµ­½ÒÃæ¤Î¥Þ¥¯¥í TARGET_SWITCHES ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤½¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤âÆ±¤¸¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥Ç¥Õ¥©¥ë¥ÈÃͤòÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£


Node:M680x0 Options, Next:, Previous:Submodel Options, Up:Submodel Options

M680x0 ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ 68000 ¥·¥ê¡¼¥º¸þ¤±¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó»þ¤Ë68000 ¤Î¤É¤Î·Á¼°¤¬ÁªÂò¤µ¤ì¤¿¤«¤Ë°Í¤ë¡£ºÇ¤â¶¦Ä̤¹¤ëÁªÂò¤Î¥Ç¥Õ¥©¥ë¥È¤Ï°Ê²¼¤ÎÄ̤ꡣ

-m68000
-mc68000
68000 ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬68000 ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¸þ¤±¤Ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤¿¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢68000 ¤ä EC000 ¤Î¥³¥¢¤ò»ý¤Ä¥Þ¥¤¥¯¥í¥³¥ó¥È¥í¡¼¥é¡¢68008¡¢68302¡¢68306¡¢68307¡¢68322¡¢68328¡¢68356 Åù¤ËÂФ·¤Æ»È¤¦¡£

-m68020
-mc68020
68020 ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬68020 ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¸þ¤±¤Ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤¿¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-m68881
ÉâÆ°¾®¿ôÅÀ¿ô¸þ¤±¤Î 68881 ¤ÎÌ¿Îá¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢-nfp ¤¬¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó»þ¤Ë»ØÄꤵ¤ì¤Ê¤¤¸Â¤ê¡¢¤Û¤È¤ó¤É¤Î 68020 ¤Î¥·¥¹¥Æ¥à¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-m68030
68030 ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬68030 ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¸þ¤±¤Ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤¿¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-m68040
68040 ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬68040 ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¸þ¤±¤Ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤¿¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢68040 ¤Ç¤Ï¥½¥Õ¥È¥¦¥§¥¢¤Ç¥¨¥ß¥å¥ì¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ 68881/68882 ¤ÎÌ¿Îá¤ò¶Ø»ß¤¹¤ë¡£ÆÉ¼Ô¤Î 68040 ¥·¥¹¥Æ¥à¤Ë¤³¤ì¤é¤ÎÌ¿Îá¤ò¥¨¥ß¥å¥ì¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤è¤¦¤Ê¥³¡¼¥É¤¬¤Ê¤±¤ì¤Ð¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤³¤È¡£

-m68060
68060 ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤¬68060 ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¸þ¤±¤Ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤¿¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢68060 ¤Ç¤Ï¥½¥Õ¥È¥¦¥§¥¢¤Ç¥¨¥ß¥å¥ì¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ 68881/68882 ¤ÎÌ¿Îá¤ò¶Ø»ß¤¹¤ë¡£ÆÉ¼Ô¤Î 68060 ¥·¥¹¥Æ¥à¤Ë¤³¤ì¤é¤ÎÌ¿Îá¤ò¥¨¥ß¥å¥ì¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤è¤¦¤Ê¥³¡¼¥É¤¬¤Ê¤±¤ì¤Ð¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤³¤È¡£

-mcpu32
CPU32 ¸þ¤±¤Î½ÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢GCC ¤¬ CPU32 ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¸þ¤±¤Ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤¿¤È¤­¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢CPU32 ¤ä CPU32+ ¤Î¥³¥¢¤ò»ý¤Ä¥Þ¥¤¥¯¥í¥³¥ó¥È¥í¡¼¥é¡¢68330¡¢68331¡¢68332¡¢68333¡¢68334¡¢68336¡¢68340¡¢68341¡¢68349¡¢68360 Åù¤ËÂФ·¤Æ»È¤¦¡£

-m5200
520X ¡Ö¥³¡¼¥ë¥É¥Õ¥¡¥¤¥¢¡×¥·¥ê¡¼¥º¤Î CPU ÍѤ˥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£GNU C ¥³¥ó¥Ñ¥¤¥é¤¬ 520X ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥àÍѤ˥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤¿¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢5200 ¤Î¥³¥¢¤ò»ý¤Ä¥Þ¥¤¥¯¥í¥³¥ó¥È¥í¡¼¥é¡¢MCF5202¡¢MCF5203¡¢MCF5204¡¢MCF5202 Åù¤Ë»È¤¦¡£

-m68020-40
68040 ÍѤ˽ÐÎϤòÀ¸À®¤¹¤ë¤¬¡¢¿·¤·¤¤Ì¿Îá¤Ï²¿¤â»È¤ï¤Ê¤¤¡£¤³¤Î·ë²Ì¡¢68020/68881 ¤ä 68030¡¢68040 ¤Î¤É¤ì¤Ç¤âÈæ³ÓŪ¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¡£À¸À®¤µ¤ì¤¿¥³¡¼¥É¤Ç¤Ï¡¢68881 ¤ÎÌ¿Îá¤ò»È¤Ã¤Æ¤ª¤ê¡¢68040 ¤Ç¤Ï¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤ë¡£
-m68020-60
68060 ÍѤ˽ÐÎϤòÀ¸À®¤¹¤ë¤¬¡¢¿·¤·¤¤Ì¿Îá¤Ï²¿¤â»È¤ï¤Ê¤¤¡£¤³¤Î·ë²Ì¡¢68020/68881 ¤ä 68030¡¢68040 ¤Î¤É¤ì¤Ç¤âÈæ³ÓŪ¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¡£À¸À®¤µ¤ì¤¿¥³¡¼¥É¤Ç¤Ï¡¢68881 ¤ÎÌ¿Îá¤ò»È¤Ã¤Æ¤ª¤ê¡¢68060 ¤Ç¤Ï¥¨¥ß¥å¥ì¡¼¥È¤µ¤ì¤ë¡£
-mfpa
Sun ¤Î FPA ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò´Þ¤à¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-msoft-float
ÉâÆ°¾®¿ôÅÀ±é»»¤Ë´Ø¤¹¤ë¥é¥¤¥Ö¥é¥ê¸Æ½Ð¤·¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£·Ù¹ðɬÍפȤʤë¥é¥¤¥Ö¥é¥ê¤Ï¡¢Á´¤Æ¤Î m68k ¤Î¥¿¡¼¥²¥Ã¥È¤ÇÍøÍѲÄǽ¤ÊÌõ¤Ç¤Ï¤Ê¤¤¡£ÉáÄ̤Ϥ½¤Îµ¡¼ï¤Çɸ½à¤Î C ¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤¬»È¤ï¤ì¤ë¤¬¡¢¤³¤ì¤Ï¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤ÏľÀܤϻȤ¨¤Ê¤¤¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¡¢Å¬Àڤʥ饤¥Ö¥é¥ê´Ø¿ô¤¬Ä󶡤Ǥ­¤ë¤è¤¦ÆÉ¼Ô¼«¿È¤ÇÄ´À°¤ò¹Ô¤Ê¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ÁȤ߹þ¤ß¥¿¡¼¥²¥Ã¥È¤Îm68k-*-aout ¤È m68k-*-coff ¤Ç¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤ëÉâÆ°¾®¿ôÅÀ±é»»¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£
-mshort
int ·¿¤ò short int ¤ÈƱ¤¸ 16 ¥Ó¥Ã¥ÈĹ¤È¤¹¤ë¡£
-mnobitfield
¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥ÉÌ¿Îá¤ò»È¤ï¤Ê¤¤¡£-m68000¡¢-mcpu32¡¢-m5200 ¥ª¥×¥·¥ç¥ó¤Ï¡¢-mnobitfield ¤ò°ÅÌۤ˴ޤࡣ
-mbitfield
¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥ÉÌ¿Îá¤ò»È¤¦¡£-m68020 ¥ª¥×¥·¥ç¥ó¤Ï¡¢-mbitfield ¤ò°ÅÌۤ˴ޤࡣ68020 ¸þ¤±¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò»È¤¦¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mrtd
Ê̤δؿô¸Æ¤Ó½Ð¤·µ¬Ìó¤ò»È¤¦¡£¤½¤Îµ¬Ìó¤Ç¤Ï¡¢°ú¿ô¤Î¿ô¤¬¸ÇÄꤷ¤Æ¤¤¤ë´Ø¿ô¤Ï¡¢rtd Ì¿Îá¤ÇÌá¤ë¡£¤³¤ÎÌ¿Îá¤ÏÌá¤ëºÝ¤Ë°ú¿ô¤ò¥Ý¥Ã¥×¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¸Æ¤Ó½Ð¤·Â¦¤Ç¤Ï¡¢°ú¿ô¤ò¥Ý¥Ã¥×¤¹¤ëɬÍפ¬¤Ê¤¤¤Î¤ÇÌ¿Îá¤ò°ì¸ÄÀáÌó¤Ç¤­¤ë¡£

¤³¤Î¸Æ¤Ó½Ð¤·µ¬Ìó¤Ï¡¢Unix ¤ÇÄ̾ï»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤È¸ß´¹À­¤¬¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢Unix ¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¤È¤­¤Ë¤Ï»È¤¨¤Ê¤¤¡£

¤Þ¤¿¡¢²ÄÊѸĿô¤Î°ú¿ô¤ò¼è¤ëÁ´¤Æ¤Î´Ø¿ô(printf ¤ò´Þ¤à)¤Ë¤Ä¤¤¤Æ´Ø¿ô¥×¥í¥È¥¿¥¤¥×¤òÍѰդ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤¦¤·¤Ê¤¤¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤ËÂФ¹¤ë¸Æ¤Ó½Ð¤·¥³¡¼¥É¤¬Àµ¤·¤¯À¸À®¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

¤µ¤é¤Ë¡¢¤¢¤Þ¤ê¤¿¤¯¤µ¤ó°ú¿ô¤ò¤Ä¤±¤Æ´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤ÈÁ´¤¯Àµ¤·¤¯¤Ê¤¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¡£(ÉáÄ̤ϡ¢Í¾Ê¬¤Ê°ú¿ô¤Ï̵»ë¤µ¤ì³²¤¬¤Ê¤¤¡£)

rtd Ì¿Îá¤Ï¡¢68010¡¢68020¡¢68030¡¢68040¡¢68060¡¢CPU32 ¤È¤¤¤Ã¤¿¥×¥í¥»¥Ã¥µ¤Ë¤¢¤ë¤¬¡¢68000 ¤ä 5200 ¤Ë¤Ï¤Ê¤¤¡£

-malign-int
-mno-align-int
GCC ¤¬ int¡¢long¡¢long long¡¢float¡¢double¡¢long double ¤ÎÊÑ¿ô¤ò 32¥Ó¥Ã¥È¶­³¦¤ËÃÖ¤¯(-malign-int) ¤«¡¢16¥Ó¥Ã¥È¶­³¦¤ËÃÖ¤¯(-mno-align-int)¤«¤òÀ©¸æ¤¹¤ë¡£ÊÑ¿ô¤ò 32 ¥Ó¥Ã¥È¶­³¦¤ËÀ°Î󤵤»¤ë¤È¡¢32¥Ó¥Ã¥È¥Ð¥¹¤Î¥×¥í¥»¥Ã¥µ¤Ç¤Ï¤¤¤¯¤é¤«¹â®¤Ë¤Ê¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤¬¡¢¥á¥â¥ê¤ò;ʬ¤Ë¾ÃÈñ¤¹¤ë¡£

Ãí°Õ: -malign-int ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï¾å¤ÇÎóµó¤·¤¿·¿¤ò´Þ¤à¹½Â¤ÂΤò¡¢m68k ÍѤΡ¢¸øÉ½¤µ¤ì¤Æ¤¤¤ë¤Û¤È¤ó¤É¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥Ð¥¤¥Ê¥ê¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹»ÅÍͤȤϰۤʤ륢¥é¥¤¥á¥ó¥È¤ò¼è¤ë¤è¤¦¤ËÃÖ¤¯¡£


Node:VAX Options, Next:, Previous:M680x0 Options, Up:Submodel Options

VAX ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ Vax ÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-munix
ÆÃÄê¤Î¥¸¥ã¥ó¥×Ì¿Îá·²(aobleq Åù)¤ò½ÐÎϤ·¤Ê¤¤¡£¤³¤ì¤é¤ÎÌ¿Îá¤Ï¡¢Vax ÍѤΠUnix ¥¢¥»¥ó¥Ö¥é¤¬Ä¹¤¤ÈϰϤò±Û¤¨¤Æ°·¤¦¤³¤È¤¬½ÐÍè¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¡£
-mgnu
GNU ¥¢¥»¥ó¥Ö¥é¤ò»È¤Ã¤Æ¥¢¥»¥ó¥Ö¥ë¤ò¹Ô¤Ê¤¦¤È¤¤¤¦ÁÛÄê¤Î¤â¤È¤Ë¡¢¾åµ­¤Î¥¸¥ã¥ó¥×Ì¿Îá·²¤ò½ÐÎϤ¹¤ë¡£
-mg
ÉâÆ°¾®¿ôÅÀ·Á¼°¤È¤·¤Æ¡¢d ·Á¼°¤ÎÂå¤ï¤ê¤Ë g ·Á¼°¤Ç½ÐÎϤ¹¤ë¡£


Node:SPARC Options, Next:, Previous:VAX Options, Up:Submodel Options

SPARC ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ SPARC ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£

-mno-app-regs
-mapp-regs
-mapp-regs ¤ò»ØÄꤹ¤ë¤È¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿¤Î 2 ¡Á 4 ¤ò»È¤¦¥³¡¼¥ÉÀ¸À®¤ò¹Ô¤Ê¤¦¡£¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿¤Î 2 ¡Á 4 ¤Ï SPARC SVR4 ABI ¤¬¥¢¥×¥ê¥±¡¼¥·¥ç¥óÍѤËͽÌ󤷤Ƥ¤¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£

´°Á´¤Ë SVR4 ABI ¤Ë½àµò¤¹¤ë¤Ë¤Ï¡¢´ö¤é¤«¸úΨ¤¬Íî¤Á¤ë¤¬¡¢-mno-app-regs ¤ò»ØÄꤹ¤ë¡£¥é¥¤¥Ö¥é¥ê¤È¥·¥¹¥Æ¥à¥½¥Õ¥È¥¦¥§¥¢¤ò¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£

-mfpu
-mhard-float
ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò´Þ¤ó¤À½ÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mno-fpu
-msoft-float
ÉâÆ°¾®¿ôÅÀÍѥ饤¥Ö¥é¥ê¸Æ¤Ó½Ð¤·¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£·Ù¹ð: ɬÍפȤʤë¥é¥¤¥Ö¥é¥ê¤ÏÁ´¤Æ¤Î SPARC ¥¿¡¼¥²¥Ã¥È¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ÉáÄ̤Ϥ½¤Îµ¡¼ï¤ÎÄ̾ï¤Î C ¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤¬»È¤ï¤ì¤ë¤¬¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¤³¤ì¤ò¤½¤Î¤Þ¤Þ¹Ô¤Ê¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¡¢Å¬Àڤʥ饤¥Ö¥é¥ê´Ø¿ô¤ò¼«Ê¬¤ÇÍѰդ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ÁȤ߹þ¤ß¥¿¡¼¥²¥Ã¥È sparc-*-aout ¤Èsparclite-+-+ ¤Ç¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤ëÉâÆ°¾®¿ôÅÀ¥µ¥Ý¡¼¥È¤òÄ󶡤·¤Æ¤¤¤ë¡£

-msoft-float ¤ò»ØÄꤹ¤ë¤È¡¢½ÐÎÏ¥Õ¥¡¥¤¥ëÃæ¤Î¸Æ¤Ó½Ð¤·µ¬Ìó¤¬ÊѤï¤ë¡£¤³¤Î¤¿¤á¡¢¥×¥í¥°¥é¥àÁ´ÂΤò¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£ÆÃ¤Ë¡¢GCC ÉÕ°¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤¢¤ë¡¢libgcc.a ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë¡¢-msoft-float ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤¤È¤³¤Î¥é¥¤¥Ö¥é¥ê¤¬Àµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£

-mhard-quad-float
4ÇÜÀºÅÙ(long double)¤ÎÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò´Þ¤à¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-msoft-quad-float
4ÇÜÀºÅÙ(long double)¤ÎÉâÆ°¾®¿ôÅÀÌ¿Îá¤ËÂФ·¤Æ¡¢¥é¥¤¥Ö¥é¥ê¸Æ¤Ó¤À¤·¤ò¹Ô¤Ê¤¦¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤Ï¡¢SPARC ABI ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£

¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ò¼¹É®¤·¤Æ¤¤¤ë»þÅÀ¤Ç¤Ï¡¢4ÇÜÀºÅÙÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò¥Ï¡¼¥É¥¦¥§¥¢¤Ç¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë SPARC ¤Î¼ÂÁõ¤Ï¸ºß¤·¤Ê¤¤¡£Á´¤Æ¤Î¼ÂÁõ¤Ç¡¢¤³¤ì¤é¤ÎÌ¿Îá¤Î¤¦¤Á¤Î°ì¤Ä¤ËÂФ·¤Æ¤Ï¥È¥é¥Ã¥×¥Ï¥ó¥É¥é¤òµ¯Æ°¤·¡¢¤½¤Î¥È¥é¥Ã¥×¥Ï¥ó¥É¥é¤Ç¤½¤ÎÌ¿Îá¤Î¸ú²Ì¤ò¥¨¥ß¥å¥ì¡¼¥È¤·¤Æ¤¤¤ë¡£¥È¥é¥Ã¥×¥Ï¥ó¥É¥é¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤Ë¤è¤ê¡¢ABI ¤Î¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹¤è¤ê¤â¤º¤Ã¤ÈÃÙ¤¯¤Ê¤ë¡£¤³¤Î¤¿¤á¡¢-msoft-quad-float ¥ª¥×¥·¥ç¥ó¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£

-mno-epilogue
-mepilogue
-mepilogue ¤ò»ØÄꤹ¤ë¤È(¥Ç¥Õ¥©¥ë¥È¤Ç»ØÄꤵ¤ì¤ë)¡¢GCC ¤Ï¡¢³Æ´Ø¿ô¤ÎºÇ¸å¤Ëɬ¤º´Ø¿ô¤Î½Ð¸ýÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£´Ø¿ô¤ÎÅÓÃæ¤Ç¤Î½Ð¸ý(Î㤨¤Ð¡¢C ¸À¸ì¤Î return ʸ)¤ËÂФ·¤Æ¤Ï¡¢´Ø¿ô¤ÎºÇ¸å¤Î½Ð¸ý¥³¡¼¥É¤Ø¤Î¥¸¥ã¥ó¥×¤òÀ¸À®¤¹¤ë¡£

-mno-epilogue ¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï´Ø¿ô¤Î½Ð¸ýËè¤Ë½Ð¸ý¥³¡¼¥É¤òŸ³«¤¹¤ë¡£

-mno-flat
-mflat
-mflat ¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï¥»¡¼¥Ö¡¿¥ê¥¹¥È¥¢¤ò¹Ô¤Ê¤¦Ì¿Îá·²¤òÀ¸À®¤»¤º¡¢¡ÖÊ¿¤é¤Ê¡×¤¢¤ë¤¤¤Ï¡¢°ì¸Ä¤Î¥ì¥¸¥¹¥¿¥¦¥£¥ó¥É¥¦¸Æ½Ð¤·µ¬Ìó¤ò»È¤¦¡£¤³¤ÎÊý¼°¤Ç¤Ï¡¢%i7 ¤ò¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤È¤·¤Æ»È¤¤¡¢Ä̾ï¤Î¥ì¥¸¥¹¥¿¥¦¥£¥ó¥É¥¦Êý¼°¤È¸ß´¹À­¤¬¤¢¤ë¡£¤É¤Á¤é¤Î¥³¡¼¥É¤â¤ª¸ß¤¤¤Ëº®¤¼¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¥í¡¼¥«¥ë¥ì¥¸¥¹¥¿¤ÈÆþÎϥ쥸¥¹¥¿(0-5)¤Ï¡¢°ÊÁ°¤È¤·¤Æ¸Æ½Ð¤·»þ¥»¡¼¥Ö¥ì¥¸¥¹¥¿¤È¤·¤Æ¼è¤ê°·¤ï¤ì¡¢É¬Íפ˱þ¤¸¤Æ¥¹¥¿¥Ã¥¯¤Ë¥»¡¼¥Ö¤µ¤ì¤ë¡£

-mno-flat ¤ò»ØÄꤹ¤ë¤È(¥Ç¥Õ¥©¥ë¥È)¡¢GCC ¤Ï¥»¡¼¥Ö¡¿¥ê¥¹¥È¥¢Ì¿Îá·²¤òÀ¸À®¤·(Ëöü´Ø¿ô¤Ï½ü¤¯)¡¢Ä̾ï¤ÎÁàºî¥â¡¼¥É¤Ë¤Ê¤ë¡£

-mno-unaligned-doubles
-munaligned-doubles
double ¤Ï 8 ¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤵤ì¤ë¤È²¾Äꤹ¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£

-munaligned-doubles ¤ò»ØÄꤹ¤ë¤È¡¢double ·¿¤¬ 8 ¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤵤»¤é¤ì¤ë¤Î¤Ï¡¢Ê̤η¿¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤ä¡¢ÀäÂÐ¥¢¥É¥ì¥¹¤ò»ý¤Ä¾ì¹ç¤Ë¸Â¤é¤ì¤ë¡£¤½¤Î¾¤Î¾ì¹ç¤Ï¡¢4 ¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤵤ì¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ÌÇ¿¤Ë¤Ê¤¤¤³¤È¤À¤¬¡¢Â¾¤Î¥³¥ó¥Ñ¥¤¥é¤ÇÀ¸À®¤·¤¿¥³¡¼¥É¤È¤Î¸ß´¹À­¤ÎÌäÂê¤ò²óÈò¤Ç¤­¤ë¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ë¤Ï¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£À­Ç½¤¬¡¢¤È¤ê¤ï¤±ÉâÆ°¾®¿ôÅÀ¥³¡¼¥É¤Î¾ì¹ç¤Ë°­¤¯¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£

-mv8
-msparclite
¤³¤ÎÆó¤Ä¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢SPARC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ÎÈǤΤ¦¤Á¤Î°ì¤Ä¤òÁªÂò¤¹¤ë¡£

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï(ÉÙ»ÎÄ̤ΠSPARClite ÍѤ˥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò¹Ô¤Ê¤ï¤Ê¤¤¸Â¤ê)¡¢GCC ¤Ï¡¢SPARC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î v7 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£

-mv8 ¤ò»ØÄꤹ¤ë¤È¡¢SPARC v8 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£v7 ¤È¤Î°ã¤¤¤Ï¡¢v7 ¤Ë¤Ï¤Ê¤¤¤¬ v8 ¤Ë¤Ï¸ºß¤¹¤ëÀ°¿ô¾è»»¤ÈÀ°¿ô½ü»»Ì¿Îá¤òÀ¸À®¤¹¤ëÅÀ¤Ë¤¢¤ë¡£

-msparclite ¤ò»ØÄꤹ¤ë¤È SPARClite ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢À°¿ô¾è»»¤ÈÀ°¿ô½ü»»¡¢¥¹¥­¥ã¥ó(ffs)Ì¿Îá¤òÄɲ乤롣¤³¤ì¤é¤ÎÌ¿Îá¤Ï¡¢v7 ¤Ë¤Ï¤Ê¤¤¤¬ SPARClite ¤Ë¸ºß¤¹¤ë¡£

¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ÏÇÑ»ßÍ׵᤬½Ð¤Æ¤ª¤ê¡¢¾­Íè¤Î GCC ¤Î¥ê¥ê¡¼¥¹¤Çºï½ü¤µ¤ì¤ëͽÄê¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï¡¢-mcpu=xxx ¤ËÃÖ¤­´¹¤¨¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£

-mcypress
-msupersparc
¤³¤ÎÆó¤Ä¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¤É¤Î¥×¥í¥»¥Ã¥µ¸þ¤±¤ËºÇŬ²½¤ò¹Ô¤Ê¤¦¤«¤òÁªÂò¤¹¤ë¡£

-mcypress ¤ò»ØÄꤹ¤ë¤È(¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë)¡¢GCC ¤Ï Cypress CY7C602 ¤È¤¤¤¦¥Á¥Ã¥×¸þ¤±¤Ë¥³¡¼¥É¤òºÇŬ²½¤¹¤ë¡£¤³¤Î¥Á¥Ã¥×¤Ï¡¢SPARCstation/SPARCserver 3xx ¥·¥ê¡¼¥º¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¸ÅÌܤΠSPARCstation 1¡¢2¡¢IPX Åù¤Ë¤âŬ¤·¤Æ¤¤¤ë¡£

GCC ¤Ï SuperSPARC ¥Á¥Ã¥×¸þ¤±¤Ë¥³¡¼¥É¤òºÇŬ²½¤¹¤ë¡£¤³¤Î¥Á¥Ã¥×¤Ï¡¢SPARCstation 10¡¢1000¡¢2000 ¥·¥ê¡¼¥º¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢´°Á´¤Ê SPARC v8 Ì¿Î᥻¥Ã¥È¤Ë¤âŬ¤·¤Æ¤¤¤ë¡£

¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ÏÇÑ»ßÍ׵᤬½Ð¤Æ¤ª¤ê¡¢¾­Íè¤Î GCC ¤Î¥ê¥ê¡¼¥¹¤Çºï½ü¤µ¤ì¤ëͽÄê¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï¡¢-mcpu=xxx ¤ËÃÖ¤­´¹¤¨¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£

-mcpu=cpu_type
µ¡¼ï·¿ cpu_type ÍѤˡ¢Ì¿Î᥻¥Ã¥È¡¢¥ì¥¸¥¹¥¿¥»¥Ã¥È¡¢Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¡£cpu_type ¤ÎÃͤȤ·¤Æ»È¤¨¤ë¤Î¤Ï¡¢v7¡¢cypress¡¢v8¡¢supersparc¡¢sparclite¡¢hypersparc¡¢sparclite86x¡¢f930¡¢f934¡¢sparclet¡¢tsc701¡¢v9¡¢ultrasparc ¤Ç¤¢¤ë¡£

¥Ç¥Õ¥©¥ë¥È¤ÎÌ¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òÁªÂò¤¹¤ëÃͤËÂФ·¤Æ»È¤ï¤ì¤ë¤Î¤Ç¤¢¤Ã¤Æ¡¢¼ÂÁõ¤ËÂФ·¤Æ»È¤ï¤ì¤ë¤Î¤Ç¤Ï¤Ê¤¤¡£¤³¤ì¤é¤Ï¡¢v7¡¢v8¡¢sparclite¡¢sparclet¡¢v9 ¤Ç¤¢¤ë¡£

¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤È¤½¤ì¤ËÂбþ¤¹¤ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¼ÂÁõ¤Î¥ê¥¹¥È¤ò°Ê²¼¤Ë¼¨¤¹¡£

    v7:             cypress
    v8:             supersparc, hypersparc
    sparclite:      f930, f934, sparclite86x
    sparclet:       tsc701
    v9:             ultrasparc

-mtune=cpu_type
µ¡¼ï cpu_type ¤ËÂФ¹¤ëÌ¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¡£¤¿¤À¤·¡¢-mcpu=cpu_type ¤¬¹Ô¤Ê¤¦¤è¤¦¤ÊÌ¿Î᥻¥Ã¥È¤ä¥ì¥¸¥¹¥¿¥»¥Ã¥È¤ÎÀßÄê¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡£

-mcpu=
cpu_type ¤Ë»È¤¨¤ë¤Î¤ÈƱ¤¸Ãͤ¬ -mtune=cpu_type ¤ËÂФ·¤Æ¤â»È¤¨¤ë¡£¤¿¤À¤·°ÕÌ£¤Î¤¢¤ëÃͤϡ¢ÆÃÄê¤Î CPU ¤Î¼ÂÁõ¤òÁª¤Ö¤â¤Î¤À¤±¤Ç¤¢¤ë¡£¤½¤ì¤Ï¼¡¤ÎÄ̤ꡣcypress¡¢supersparc¡¢hypersparc¡¢f930¡¢f934¡¢sparclite86x¡¢tsc701¡¢ultrasparc¡£

-malign-loops=num
¥ë¡¼¥×¤ò 2 ¤Î num ¾è¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤵤»¤ë¡£-malign-loops ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ï 2 ¤Ç¤¢¤ë¡£
-malign-jumps=num
¥¸¥ã¥ó¥×Àè¤ÎÌ¿Îá¤Î¤ß¤ò 2 ¤Î num ¾è¶­³¦¤ËÀ°Î󤵤»¤ë¡£-malign-jumps ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ï 2 ¤Ç¤¢¤ë¡£
-malign-functions=num
´Ø¿ô¤Î³«»Ï°ÌÃÖ¤ò 2 ¤Î num ¾è¶­³¦¤ËÀ°Î󤵤»¤ë¡£-malign-functions ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢32 ¥Ó¥Ã¥È¤Î SPARC ¤Î¾ì¹ç¤Ï 2 ¤Ç¡¢64 ¥Ó¥Ã¥È¤Î SPARC ¤Î¾ì¹ç¤Ï 5 ¤Ç¤¢¤ë¡£

SPARCLET ¥×¥í¥»¥Ã¥µ¤Ç¤Ï¡¢°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬¾åµ­¤Ë²Ã¤¨¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£

-mlittle-endian
¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¡¦¥â¡¼¥É¤Çưºî¤¹¤ë¥×¥í¥»¥Ã¥µÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-mlive-g0
¥ì¥¸¥¹¥¿ %g0 ¤òÉáÄ̤Υ쥸¥¹¥¿¤È¤·¤Æ¼è¤ê°·¤¦¡£GCC ¤ÏɬÍפ˱þ¤¸¤Æ¡¢°ú¤­Â³¤­¡¢¤³¤Î¥ì¥¸¥¹¥¿¤ò¾å½ñ¤­¤¹¤ë¤¬¡¢¾ï¤Ë 0 ¤òÆÉ¤ß½Ð¤¹¤È¤¤¤¦ÁÛÄê¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡£
-mbroken-saverestore
save Ì¿Îá¤È restore Ì¿Îá¤Î¼«ÌÀ¤Ç¤Ê¤¤·Á¤ò»È¤ï¤Ê¤¤¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£SPARCLET ¥×¥í¥»¥Ã¥µ¤Î½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢°ú¿ôÉÕ¤­¤Îsave Ì¿Îá¤È restore Ì¿Îá¤òÀµ¤·¤¯°·¤¨¤Ê¤¤¡£°ú¿ô¤Ê¤·¤Ê¤éÀµ¤·¤¯°·¤¦¤³¤È¤¬¤Ç¤­¤ë¡£°ú¿ô¤Ê¤·¤Î save Ì¿Îá¤Ï¡¢¸½ºß¤Î¥¦¥£¥ó¥É¥¦¥Ý¥¤¥ó¥¿¤ò¥¤¥ó¥¯¥ê¥á¥ó¥È¤¹¤ë¤¬¡¢¿·¤·¤¤¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤Ï³ä¤êÅö¤Æ¤Ê¤¤¡£¥¦¥£¥ó¥É¥¦¤Î¥ª¡¼¥Ð¥Õ¥í¡¼¤Î¥È¥é¥Ã¥×¥Ï¥ó¥É¥é¤¬¡¢¤³¤Î¾ì¹ç¤ò¡¢³ä¤ê¹þ¤ß¥Ï¥ó¥É¥é¤ÈƱ¤¸¤è¤¦¤ËÀµ¤·¤¯°·¤¦¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£

64¥Ó¥Ã¥È´Ä¶­¤Î SPARC V9 ¥×¥í¥»¥Ã¥µ¤Ç¤Ï¾åµ­¤Ë²Ã¤¨¤Æ°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£

-mlittle-endian
¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¡¦¥â¡¼¥É¤Çưºî¤¹¤ë¥×¥í¥»¥Ã¥µÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-m32
-m64
32¥Ó¥Ã¥È¤Þ¤¿¤Ï64¥Ó¥Ã¥È´Ä¶­ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£32¥Ó¥Ã¥È´Ä¶­¤Ï¡¢int ¤È long¡¢¥Ý¥¤¥ó¥¿¤ò 32¥Ó¥Ã¥È¤ËÀßÄꤹ¤ë¡£64¥Ó¥Ã¥È´Ä¶­¤Ï¡¢int ¤ò 32¥Ó¥Ã¥È¤Ë¡¢long ¤È¥Ý¥¤¥ó¥¿¤ò 64¥Ó¥Ã¥È¤ËÀßÄꤹ¤ë¡£
-mcmodel=medlow
Medium/Low ¥³¡¼¥É¥â¥Ç¥ë¸þ¤±¤Ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥â¥Ç¥ë¤Ç¤Ï¡¢¥×¥í¥°¥é¥à¤Ï¥¢¥É¥ì¥¹¶õ´Ö¤Î²¼°Ì 32 ¥Ó¥Ã¥ÈÆâ¤Ç¥ê¥ó¥¯¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥Ý¥¤¥ó¥¿¤Ï 64 ¥Ó¥Ã¥È¤Ç¤¢¤ë¡£¥×¥í¥°¥é¥à¤Ï¡¢ÀÅŪ¤Ë¤âưŪ¤Ë¤â¥ê¥ó¥¯²Äǽ¤Ç¤¢¤ë¡£
-mcmodel=medmid
Medium/Middle ¥³¡¼¥É¥â¥Ç¥ë¸þ¤±¤Ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥â¥Ç¥ë¤Ç¤Ï¡¢¥×¥í¥°¥é¥à¤Ï¥¢¥É¥ì¥¹¶õ´Ö¤Î²¼°Ì 44 ¥Ó¥Ã¥ÈÆâ¤Ç¥ê¥ó¥¯¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥È¤Ï 2G ¥Ð¥¤¥È°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Ï 2G¥Ð¥¤¥È¤Î¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥ÈÆâ¤Ë°ì½ï¤ËÆþ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥Ý¥¤¥ó¥¿¤Ï 64 ¥Ó¥Ã¥È¤Ç¤¢¤ë¡£
-mcmodel=medany
Medium/Anywhere ¥³¡¼¥É¥â¥Ç¥ë¸þ¤±¤Ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥â¥Ç¥ë¤Ç¤Ï¡¢¥×¥í¥°¥é¥à¤Ï¥¢¥É¥ì¥¹¶õ´Ö¤Î¤É¤³¤Ë¥ê¥ó¥¯¤·¤Æ¤âÎɤ¯¡¢¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥È¤Ï 2G ¥Ð¥¤¥È°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Ï 2G¥Ð¥¤¥È¤Î¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥ÈÆâ¤Ë°ì½ï¤ËÆþ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥Ý¥¤¥ó¥¿¤Ï 64 ¥Ó¥Ã¥È¤Ç¤¢¤ë¡£
-mcmodel=embmedany
ÁȤ߹þ¤ß¥·¥¹¥Æ¥àÍѤΠMedium/Anywhere ¥³¡¼¥É¥â¥Ç¥ë¸þ¤±¤Ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥â¥Ç¥ë¤Ç¤Ï¡¢¥Æ¥­¥¹¥È¥»¥°¥á¥ó¥È¤È¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Ï 32 ¥Ó¥Ã¥È¤ÎÂ礭¤µ¤Ç¤¢¤ê¡¢¤É¤Á¤é¤âǤ°Õ¤Î°ÌÃÖ(¥ê¥ó¥¯»þ¤Ë·èÄꤵ¤ì¤ë)¤«¤é³«»Ï²Äǽ¤Ç¤¢¤ë¡£¥ì¥¸¥¹¥¿ %g4 ¤¬¡¢¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Î´ðÄì¤ò»Ø¤¹¡£¥Ý¥¤¥ó¥¿¤Ï°ÍÁ³¤È¤·¤Æ 64 ¥Ó¥Ã¥È¤Ç¤¢¤ë¡£
-mstack-bias
-mno-stack-bias
-mstack-bias ¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤È¡¢¤½¤ì¤Ë¤â¤·¤¢¤ì¤Ð¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤Ï¡¢¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤Î»²¾È¤òºî¤ë¤È¤­¤Ë¡¢¥ª¥Õ¥»¥Ã¥È¤Ë -2047 ¤ò²Ã¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤ÈÁÛÄꤹ¤ë¡£


Node:Convex Options, Next:, Previous:SPARC Options, Up:Submodel Options

Convex ¥ª¥×¥·¥ç¥ó

Convex ¸þ¤±¤Ë¤Ï°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mc1
C1 ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤ÇÀ¸À®¤·¤¿¥³¡¼¥É¤Ï Convex ¤Î¤É¤Îµ¡¼ï¤Ç¤âưºî¤¹¤ë¡£¥×¥ê¥×¥í¥»¥Ã¥µÍÑ¥·¥ó¥Ü¥ë __convex__c1__ ¤¬ÄêµÁ¤µ¤ì¤ë¡£
-mc2
C2 ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£C1 ¤Ë¤Ï¸ºß¤·¤Ê¤¤Ì¿Îá¤ò»È¤¦¡£¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¢¤½¤ì¤Ë¤½¤Î¾¤ÎºÇŬ²½¤Ï¡¢C2 ¤ÇºÇÂç¤ÎÀ­Ç½¤òȯ´ø¤¹¤ë¤è¤¦¤ËÁª¤Ð¤ì¤ë¡£¥×¥ê¥×¥í¥»¥Ã¥µÍÑ¥·¥ó¥Ü¥ë __convex__c2__ ¤¬ÄêµÁ¤µ¤ì¤ë¡£
-mc32
C32xx ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£C1 ¤Ë¤Ï¸ºß¤·¤Ê¤¤Ì¿Îá¤ò»È¤¦¡£¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¢¤½¤ì¤Ë¤½¤Î¾¤ÎºÇŬ²½¤Ï¡¢C32 ¤ÇºÇÂç¤ÎÀ­Ç½¤òȯ´ø¤¹¤ë¤è¤¦¤ËÁª¤Ð¤ì¤ë¡£¥×¥ê¥×¥í¥»¥Ã¥µÍÑ¥·¥ó¥Ü¥ë __convex__c32__ ¤¬ÄêµÁ¤µ¤ì¤ë¡£
-mc34
C34xx ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£C1 ¤Ë¤Ï¸ºß¤·¤Ê¤¤Ì¿Îá¤ò»È¤¦¡£¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¢¤½¤ì¤Ë¤½¤Î¾¤ÎºÇŬ²½¤Ï¡¢C34 ¤ÇºÇÂç¤ÎÀ­Ç½¤òȯ´ø¤¹¤ë¤è¤¦¤ËÁª¤Ð¤ì¤ë¡£¥×¥ê¥×¥í¥»¥Ã¥µÍÑ¥·¥ó¥Ü¥ë __convex__c34__ ¤¬ÄêµÁ¤µ¤ì¤ë¡£
-mc38
C38xx ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£C1 ¤Ë¤Ï¸ºß¤·¤Ê¤¤Ì¿Îá¤ò»È¤¦¡£¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¢¤½¤ì¤Ë¤½¤Î¾¤ÎºÇŬ²½¤Ï¡¢C38 ¤ÇºÇÂç¤ÎÀ­Ç½¤òȯ´ø¤¹¤ë¤è¤¦¤ËÁª¤Ð¤ì¤ë¡£¥×¥ê¥×¥í¥»¥Ã¥µÍÑ¥·¥ó¥Ü¥ë __convex__c38__ ¤¬ÄêµÁ¤µ¤ì¤ë¡£
-margcount
³Æ°ú¿ô¥ê¥¹¥È¤ÎÁ°¤Ë¡¢°ú¿ô¤Î¸Ä¿ô¤ÎÆþ¤Ã¤¿¥ï¡¼¥É¤òÃÖ¤¯¤è¤¦¤Ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤¦¤¹¤ë¤ÈÉáÄ̤ΠCC ¤È¸ß´¹À­¤¬¤¢¤ê¡¢°ú¿ô¸Ä¿ô¤Î¥ï¡¼¥É¤òɬÍפȤ¹¤ë¥×¥í¥°¥é¥à¤¬´ö¤Ä¤«¤¢¤ë¡£GDB ¤ä¤½¤Î¤¿¤Î¥½¡¼¥¹¥³¡¼¥É¥ì¥Ù¥ë¤Î¥Ç¥Ð¥Ã¥¬¤Ï°ú¿ô¸Ä¿ô¤Î¥ï¡¼¥É¤òɬÍפȤ·¤Ê¤¤¡£°ú¿ô¤Î¸Ä¿ô¾ðÊó¤Ï¡¢¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ËÆþ¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£
-mnoargcount
°ú¿ô¸Ä¿ô¤Î¥ï¡¼¥É¤ò¾Êά¤¹¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mvolatile-cache
´øÈ¯À­¤Î»²¾È¤ò¥­¥ã¥Ã¥·¥å¤¹¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mvolatile-nocache
´øÈ¯À­»²¾È¤Ë¤Ä¤¤¤Æ¡¢¥Ç¡¼¥¿¥­¥ã¥Ã¥·¥å¤ò±ª²ó¤µ¤»¡¢Á´¤Æ¥á¥â¥ê¤ò¸«¤Ë¹Ô¤«¤»¤ë¡£¤³¤ì¤Ï¡¢É¸½à¤ÎƱ´üÌ¿Îá¤ò»È¤ï¤Ê¤¤¡¢¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¥³¡¼¥É¤Î¾ì¹ç¤Ë¤Î¤ßɬÍפˤʤ롣´øÈ¯À­¤Î°ÌÃÖ¤ËÂФ¹¤ëÈó´øÈ¯À­¤Î»²¾È¤òºî¤ë¤Î¤Ï¡¢Æ°ºî¤¹¤ëɬÍפϤʤ¤¡£
-mlong32
long ·¿¤ò int ·¿¤ÈƱ¤¸ 32 ¥Ó¥Ã¥È¤Ë¤¹¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mlong64
long ·¿¤ò long long ·¿¤ÈƱ¤¸ 64 ¥Ó¥Ã¥È¤Ë¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥µ¥Ý¡¼¥È¤¹¤ë¥é¥¤¥Ö¥é¥ê¤¬Â¸ºß¤·¤Ê¤¤¤Î¤Ç¡¢»È¤¨¤Ê¤¤


Node:AMD29K Options, Next:, Previous:Convex Options, Up:Submodel Options

AMD29K ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ AMD Am29000 ÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mdw
DW ¥Ó¥Ã¥È¤¬Î©¤Ã¤Æ¤¤¤ë¡¢¤¹¤Ê¤ï¤Á¥Ð¥¤¥È±é»»¤ÈȾ¸ì±é»»¤¬¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤êľÀÜ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÁÛÄꤷ¤¿¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mndw
DW ¥Ó¥Ã¥È¤¬Î©¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤òÁÛÄꤷ¤¿¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-mbw
¥·¥¹¥Æ¥à¤¬¡¢¥Ð¥¤¥È¤ÈȾ¸ì¤Î½ñ¤­¹þ¤ß±é»»¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤³¤È¤òÁÛÄꤷ¤¿¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mnbw
¥·¥¹¥Æ¥à¤¬¡¢¥Ð¥¤¥È¤ÈȾ¸ì¤Î½ñ¤­¹þ¤ß±é»»¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤³¤È¤òÁÛÄꤷ¤¿¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£-mnbw ¤Ï -mndw ¤ò´Þ¤à¡£
-msmall
¥¹¥â¡¼¥ë¡¦¥á¥â¥ê¡¦¥â¥Ç¥ë¤ò»È¤¦¡£¤³¤Î¥â¥Ç¥ë¤Ç¤Ï¡¢´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ÏÁ´¤Æ°ì¸Ä¤Î 256KB ¤Î¥»¥°¥á¥ó¥ÈÆâ¤Ë¤¢¤ë¤«¡¢256k ¤è¤ê¾®¤µ¤¤ÀäÂÐ¥¢¥É¥ì¥¹¤Ë¤¢¤ë¤³¤È¤òÁÛÄꤹ¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢call Ì¿Î᤬¡¢const¡¢consth¡¢calli ¤È¤¤¤¦Ì¿ÎáÎó¤ÎÂå¤ï¤ê¤Ë»È¤ï¤ì¤ë¡£
-mnormal
¥Î¡¼¥Þ¥ë¡¦¥á¥â¥ê¡¦¥â¥Ç¥ë¤ò»È¤¦¡£¸Æ½Ð¤·Â¦´Ø¿ô¤¬Æ±°ì¥Õ¥¡¥¤¥ëÆâ¤Ë¤¢¤ë¤È¤­¤Î¤ßcall Ì¿Îá¤òÀ¸À®¤·¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï calli Ì¿Îá¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢³Æ¥Õ¥¡¥¤¥ë¤¬ 256 KB ̤Ëþ¤Ç¤¢¤ì¤Ðưºî¤¹¤ë¡£¤³¤Î¾ì¹ç¡¢¼Â¹Ô·Á¼°Á´ÂÎ¤Ï 256KB ¤è¤êÂ礭¤¯¤Æ¤âÎɤ¤¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mlarge
¾ï¤Ë calli Ì¿Îá¤ò»È¤¦¡£°ì¸Ä¤Î¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤È¤­¤Ë256KB ¤è¤êÂ礭¤Ê¥³¡¼¥É¤Ë¤Ê¤ê¤½¤¦¤Ê¤é¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£
-m29050
Am29050 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-m29000
Am29000 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mkernel-registers
¥ì¥¸¥¹¥¿ gr96-gr127 ¤Ø¤Î»²¾È¤ÎÂå¤ï¤ê¤Ë¡¢¥ì¥¸¥¹¥¿ gr64-gr95 ¤Ø¤Î»²¾È¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥æ¡¼¥¶¥â¡¼¥É¤Î¥³¡¼¥É¤Ç»È¤ï¤ì¤ë¤â¤Î¤È¤ÏʬΥ¤·¤¿¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿¤Î¥»¥Ã¥È¤òɬÍפȤ¹¤ë¥«¡¼¥Í¥ë¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¤­¤Ï¡¢-f ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¥ì¥¸¥¹¥¿Ì¾¤Ï¡¢Ä̾ï¤Î¥æ¡¼¥¶¥â¡¼¥É¤Î̾Á°¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

-muser-registers
Ä̾ï¤Î¥°¥í¡¼¥Ð¥ë¡¦¥ì¥¸¥¹¥¿¤Î¥»¥Ã¥È¤Ç¤¢¤ë¡¢gr96-gr127 ¤ò»È¤¦¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mstack-check
-mno-stack-check
³Æ¥¹¥¿¥Ã¥¯Ä´À°¤Î¸å¤Ë¡¢__msp_check ¤Ø¤Î¸Æ½Ð¤·¤òÁÞÆþ¤¹¤ë(ÁÞÆþ¤·¤Ê¤¤)¡£¤³¤ì¤Ï¥«¡¼¥Í¥ë¥³¡¼¥É¤ÇÎɤ¯»È¤ï¤ì¤ë¡£
-mstorem-bug
-mno-storem-bug
-mstorem-bug ¤ò»ØÄꤹ¤ë¤È¡¢mstrim Ì¿Îá¤È storem Ì¿Îá¤òʬΥ¤·¤Æ°·¤¨¤Ê¤¤ 29k ¥×¥í¥»¥Ã¥µ(29050 ¤ò½ü¤¯¡¢¸½»þÅÀ¤Ç¤Î¤Û¤È¤ó¤É¤Î 29000 ¥Á¥Ã¥×)¤ò¼è¤ê°·¤¦¡£
-mno-reuse-arg-regs
-mreuse-arg-regs
-mno-reuse-arg-regs ¤ò»ØÄꤹ¤ë¤È¡¢ÆþÎϰú¿ô¥ì¥¸¥¹¥¿¤Ï°ú¿ô¤ò¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¤¿¤á¤Ë¤·¤«»È¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£¤³¤ì¤Ï¡¢Àë¸À¤µ¤ì¤¿¤â¤Î¤è¤ê¤â¾¯¤Ê¤¤°ú¿ô¤Ç´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¤Î¤ò¸¡½Ð¤¹¤ë¼ê½õ¤±¤Ë¤Ê¤ë¡£
-mno-impure-text
-mimpure-text
-mimpure-text ¤ò¡¢-shared ¤Ë²Ã¤¨¤Æ»ØÄꤹ¤ë¤È¡¢µýÍ­¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ê¥ó¥¯¤¹¤ë¤È¤­¤Ë¥ê¥ó¥«¤Ë -assert pure-text ¥ª¥×¥·¥ç¥ó¤òÅϤµ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£
-msoft-float
ÉâÆ°¾®¿ôÅÀÍѥ饤¥Ö¥é¥ê¸Æ¤Ó½Ð¤·¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£·Ù¹ð: ɬÍפȤʤë¥é¥¤¥Ö¥é¥ê¤Ï GCC ¤Î°ìÉô¤Ç¤Ï¤Ê¤¤¡£ÉáÄ̤Ϥ½¤Îµ¡¼ï¤ÎÄ̾ï¤Î C ¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤¬»È¤ï¤ì¤ë¤¬¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¤³¤ì¤ò¤½¤Î¤Þ¤Þ¹Ô¤Ê¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¡¢Å¬Àڤʥ饤¥Ö¥é¥ê´Ø¿ô¤ò¼«Ê¬¤ÇÍѰդ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-mno-multm
multm Ì¿Îá¤ä multmu Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤¡£¤³¤ì¤Ï¡¢¤³¤ì¤é¤ÎÌ¿Îá¸þ¤±¤Ë¥È¥é¥Ã¥×¡¦¥Ï¥ó¥É¥é¤ò»ý¤¿¤Ê¤¤´ö¤Ä¤«¤ÎÁȤ߹þ¤ß¥·¥¹¥Æ¥à¤ÇÍ­ÍѤǤ¢¤ë¡£


Node:ARM Options, Next:, Previous:AMD29K Options, Up:Submodel Options

ARM ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤¬¡¢Advanced RISC Machines (ARM) ¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë

-mapcs-frame
¥³¡¼¥É¤òÀµ¤·¤¯¼Â¹Ô¤¹¤ë¤Ë¤Ïɬ¤º¤·¤âɬÍפǤʤ¯¤Æ¤â¡¢Á´¤Æ¤Î´Ø¿ô¤ËÂФ·¡¢ARM Procedure Call Standard ¤Ë½àµò¤·¤¿¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤È¹ç¤ï¤»¤Æ -fomit-frame-pointer ¤ò»ØÄꤹ¤ë¤È¡¢Ëöü´Ø¿ô¤ËÂФ·¤Æ¤Ï¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤¬À¸À®¤µ¤ì¤Ê¤¯¤Ê¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï -mno-apcs-frame ¤Ç¤¢¤ë¡£
-mapcs
¤³¤ì¤Ï -mapcs-frame ¤ÎÊÌ̾¤Ç¤¢¤ë¡£
-mapcs-26
¥×¥í¥°¥é¥à¥«¥¦¥ó¥¿¤¬ 26 ¥Ó¥Ã¥È¤Î¥×¥í¥»¥Ã¥µÍѤǡ¢APCS 26 ¥Ó¥Ã¥È¥ª¥×¥·¥ç¥óÍѤδؿô¸Æ½Ð¤·µ¬Ìó¤Ë½àµò¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢GCC ¤Î°ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Î -m2 ¥ª¥×¥·¥ç¥ó¤È-m3 ¥ª¥×¥·¥ç¥ó¤òÃÖ¤­´¹¤¨¤ë¤â¤Î¤Ç¤¢¤ë¡£
-mapcs-32
¥×¥í¥°¥é¥à¥«¥¦¥ó¥¿¤¬ 32 ¥Ó¥Ã¥È¤Î¥×¥í¥»¥Ã¥µÍѤǡ¢APCS 32 ¥Ó¥Ã¥È¥ª¥×¥·¥ç¥óÍѤδؿô¸Æ½Ð¤·µ¬Ìó¤Ë½àµò¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢GCC ¤Î°ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Î -m6 ¥ª¥×¥·¥ç¥ó¤òÃÖ¤­´¹¤¨¤ë¤â¤Î¤Ç¤¢¤ë¡£
-mapcs-stack-check
¤¢¤é¤æ¤ë´Ø¿ô(¼ÂºÝ¤Ë¾¯¤·¤Ç¤â¥¹¥¿¥Ã¥¯¥¹¥Ú¡¼¥¹¤ò»È¤¦¤â¤Î)¤ÎÆþ¤ê¸ýÅÀ¤Ç¡¢ÍøÍѲÄǽ¤Ê¥¹¥¿¥Ã¥¯¥¹¥Ú¡¼¥¹¤ÎÎ̤ò¸¡ºº¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£ÍøÍѤǤ­¤ë¥¹¥¿¥Ã¥¯¥¹¥Ú¡¼¥¹¤¬Â­¤ê¤Ê¤±¤ì¤Ð¡¢´Ø¿ô __rt_stkovf_split_small ¤« __rt_stkovf_split_big ¤Î¤É¤Á¤é¤«¤¬¸Æ¤Ð¤ì¤ë¡£¤É¤Á¤é¤¬¸Æ¤Ð¤ì¤ë¤«¤ÏɬÍפȤ¹¤ë¥¹¥¿¥Ã¥¯¥¹¥Ú¡¼¥¹Î̤ˤè¤ë¡£¼Â¹Ô»þ¥·¥¹¥Æ¥à¤Ï¤³¤ì¤é¤Î´Ø¿ô¤òÄ󶡤¹¤ëɬÍפ¬¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡¢-mno-apcs-stack-check ¤Ç¤¢¤ë¡£À¸À®¤µ¤ì¤ë¥³¡¼¥É¤¬¾®¤µ¤¤¤«¤é¤Ç¤¢¤ë¡£
-mapcs-float
ÉâÆ°¾®¿ôÅÀ°ú¿ô¤òÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ò»È¤Ã¤ÆÅϤ¹¡£¤³¤ì¤Ï APCS ¤ÎÊѼï¤Î°ì¤Ä¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥¿¡¼¥²¥Ã¥È¥Ï¡¼¥É¥¦¥§¥¢¤¬ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¤ä¡¢ÉâÆ°¾®¿ôÅÀ»»½Ñ±é»»¤òÂçÎ̤˼¹Ԥ¹¤ë¾ì¹ç¤Ë¤ª´«¤á¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï -mno-apcs-float ¤Ç¤¢¤ë¡£À°¿ô¤·¤«´Þ¤Þ¤Ê¤¤¥³¡¼¥É¤Ï¡¢-mapcs-float ¤ò»ØÄꤹ¤ë¤È¤ï¤º¤«¤Ë¥µ¥¤¥º¤¬Â礭¤¯¤Ê¤ë¤¿¤á¤Ç¤¢¤ë¡£
-mapcs-reentrant
ºÆÆþ²Äǽ¤Ê°ÌÃÖÆÈΩ¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢-fpic ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤Î¤ËÅù²Á¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡¢-mno-apcs-reentrant ¤Ç¤¢¤ë¡£
-mthumb-interwork
ARM ¤È THUMB ¤ÎÌ¿Î᥻¥Ã¥È´Ö¤Ç¤Î¸Æ¤Ó¤À¤·¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¤È¡¢Æó¤Ä¤ÎÌ¿Î᥻¥Ã¥È¤ò°ì¤Ä¤Î¥×¥í¥°¥é¥à¤ÎÃæ¤Ç»ÈÍѤ¹¤ë¤Î¤Ï¿®ÍêÀ­¤Ë·ç¤±¤ë¤³¤È¤Ë¤Ê¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡¢¡¢-mno-thumb-interwork ¤Ç¤¢¤ë¡£-mthumb-interwork ¤ò»ØÄꤹ¤ë¤È¤ï¤º¤«¤Ë¥³¡¼¥É¤¬Â礭¤¯¤Ê¤ë¤¿¤á¤Ç¤¢¤ë¡£
-mno-sched-prolog
´Ø¿ô¥×¥í¥í¡¼¥°Æâ¤ÎÌ¿ÎáʤÙÂØ¤¨¤ä¡¢´Ø¿ô¥×¥í¥í¡¼¥°¤ÎÌ¿Îá¤È´Ø¿ôËÜÂΤÎÌ¿Îá¤Îº®¹ç¤òÍ޻ߤ¹¤ë¡£¤³¤ì¤Ï¡¢Á´¤Æ¤Î´Ø¿ô¤¬¤¢¤ë¸«Ê¬¤±¤ÎÉÕ¤¯Ì¿Îá¤Î¥»¥Ã¥È¤Ç»Ï¤Þ¤ë(¤¢¤ë¤¤¤Ï¡¢¼ÂºÝ¤Ë¤Ï¡¢°Û¤Ê¤ë´Ø¿ô¥×¥í¥í¡¼¥°¤Î´ö¤Ä¤«¤Î¥»¥Ã¥È¤«¤é°ì¤ÄÁª¤ó¤À¤â¤Î¤Ç»Ï¤Þ¤ë)¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¤³¤Î¾ðÊó¤ò»È¤Ã¤Æ¡¢´Ø¿ô¤¬¼Â¹Ô²Äǽ¤Ê¥³¡¼¥ÉÃÇÊÒ¤ÎÃæ¤Ë¤¢¤ë¤È¤­¤Ë¤½¤Î´Ø¿ô¤Î³«»Ï°ÌÃÖ¤ò¸«¤Ä¤±¤ë¤³¤È¤¬½ÐÍè¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡¢-sched-prolog ¤Ç¤¢¤ë¡£
-mhard-float
ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-msoft-float
ÉâÆ°¾®¿ôÅÀÍѥ饤¥Ö¥é¥ê¸Æ¤Ó½Ð¤·¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£·Ù¹ð: ɬÍפȤʤë¥é¥¤¥Ö¥é¥ê¤ÏÁ´¤Æ¤Î ARM ¥¿¡¼¥²¥Ã¥È¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ÉáÄ̤Ϥ½¤Îµ¡¼ï¤ÎÄ̾ï¤Î C ¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤¬»È¤ï¤ì¤ë¤¬¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¤³¤ì¤ò¤½¤Î¤Þ¤Þ¹Ô¤Ê¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¡¢Å¬Àڤʥ饤¥Ö¥é¥ê´Ø¿ô¤ò¼«Ê¬¤ÇÍѰդ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

-msoft-float ¤ò»ØÄꤹ¤ë¤È¡¢½ÐÎÏ¥Õ¥¡¥¤¥ëÃæ¤Î¸Æ¤Ó½Ð¤·µ¬Ìó¤¬ÊѤï¤ë¡£¤³¤Î¤¿¤á¡¢¥×¥í¥°¥é¥àÁ´ÂΤò¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£ÆÃ¤Ë¡¢GCC ÉÕ°¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤¢¤ë¡¢libgcc.a ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë¡¢-msoft-float ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤¤È¤³¤Î¥é¥¤¥Ö¥é¥ê¤¬Àµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£

-mlittle-endian
¥ê¥È¥ë¡¦¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤Çưºî¤¹¤ë¥×¥í¥»¥Ã¥µ¸þ¤±¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤¬¡¢Á´¤Æ¤Îɸ½à¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mbig-endian
¥Ó¥Ã¥°¡¦¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤Çưºî¤¹¤ë¥×¥í¥»¥Ã¥µ¸þ¤±¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡¢¥ê¥È¥ë¡¦¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥×¥í¥»¥Ã¥µ¸þ¤±¤Î¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£
-mwords-little-endian
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ó¥Ã¥°¡¦¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥×¥í¥»¥Ã¥µÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë»þ¤Ë¤Î¤ßŬÍѤµ¤ì¤ë¡£¸ì¤Ë´Ø¤·¤Æ¤Ï¥ê¥È¥ë¡¦¥¨¥ó¥Ç¥£¥¢¥ó¤À¤¬¡¢¥Ð¥¤¥È¤Ë´Ø¤·¤Æ¤Ï¥Ó¥Ã¥°¡¦¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢¥Ð¥¤¥È½ç¤Ï 32107654 ¤È¤¤¤¦·Á¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤Î¤Ï¡¢¥Ó¥Ã¥°¡¦¥¨¥ó¥Ç¥£¥¢¥ó¤Î ARM ¥×¥í¥»¥Ã¥µÍѤΥ³¡¼¥É¤Ç¡¢GCC ¤Î 2.8 °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤ÇÀ¸À®¤µ¤ì¤¿¤â¤Î¤È¤Î¸ß´¹À­¤¬É¬Íפʾì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£
-mshort-load-bytes
Ⱦ¸ì(Î㤨¤Ð short·¿)¤ò¥í¡¼¥É¤¹¤ë¤Î¤Ë¡¢À°Î󤷤Ƥ¤¤Ê¤¤¥¢¥É¥ì¥¹¤«¤é¸ì¤ò¥í¡¼¥É¤¹¤ë¤³¤È¤Ç¹Ô¤Ê¤¦¤³¤È¤ò¤·¤Ê¤¤¡£¥¿¡¼¥²¥Ã¥È¤ÎÃæ¤Ë¤Ï¡¢MMU ¤¬¡¢À°Î󤷤Ƥ¤¤Ê¤¤¥¢¥É¥ì¥¹¤«¤é¤Î¥í¡¼¥É¤ò¥È¥é¥Ã¥×¤¹¤ë¤è¤¦ÀßÄꤵ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¤½¤¦¤¤¤¦´Ä¶­¤Ç¤â°ÂÁ´¤Ê¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-mno-short-load-bytes
Ⱦ¸ì(short·¿Åù)¤ò¥í¡¼¥É¤¹¤ë¤Î¤Ë¡¢À°Î󤷤Ƥ¤¤Ê¤¤¥¢¥É¥ì¥¹¤«¤é¸ì¤ò¥í¡¼¥É¤¹¤ë¤³¤È¤Ç¹Ô¤Ê¤¦¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤¬ÆÀ¤é¤ì¤ë¤¬¡¢MMU ¤Ï¤³¤ì¤é¤ÎÌ¿Îá¤ò¥È¥é¥Ã¥×¤¹¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ë¡£
-mshort-load-words
¤³¤ì¤Ï -mno-short-load-bytes ¤ÎÊÌ̾¤Ç¤¢¤ë¡£
-mno-short-load-words
¤³¤ì¤Ï¡¢-mshort-load-bytes ¤ÎÊÌ̾¤Ç¤¢¤ë¡£
-mbsd
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï RISC iX ¤Ë¤Î¤ß»È¤¨¤ë¡£¥Í¥¤¥Æ¥£¥Ö¤Î BSD ¥â¡¼¥É¤Î¥³¥ó¥Ñ¥¤¥é¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¡£¤³¤ì¤Ï¡¢-ansi ¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mxopen
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï RISC iX ¤Ë¤Î¤ß»È¤¨¤ë¡£¥Í¥¤¥Æ¥£¥Ö¤Î X/Open ¥â¡¼¥É¤Î¥³¥ó¥Ñ¥¤¥é¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¡£
-mno-symrename
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï RISC iX ¤Ë¤Î¤ß»È¤¨¤ë¡£¥¢¥»¥ó¥Ö¥é¤Î¸å½èÍý¥×¥í¥°¥é¥à symrename ¤ò¡¢¥³¡¼¥É¤¬¥¢¥»¥ó¥Ö¥ë¤µ¤ì¤¿¸å¤Ç¼Â¹Ô¤·¤Ê¤¤¡£ÉáÄ̤ϡ¢RISC iX C ¥é¥¤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¤¿¤á¤Î²¼½àÈ÷¤È¤·¤Æ¡¢É¸½à¤Î¥·¥ó¥Ü¥ë¤ò¤¤¤¯¤é¤«½¤Àµ¤¹¤ëɬÍפ¬¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤½¤Î½¤Àµ²áÄø¤òÍ޻ߤ¹¤ë¡£¸å½èÍý¥×¥í¥°¥é¥à¤Ï¡¢GCC ¤¬¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ¹½ÃÛ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï·è¤·¤Æ¼Â¹Ô¤µ¤ì¤Ê¤¤¡£
-mcpu=<name>
-mtune=<name>
¤³¤ì¤Ï¡¢¥¿¡¼¥²¥Ã¥È¤Î ARM ¥×¥í¥»¥Ã¥µÌ¾¤ò»ØÄꤹ¤ë¡£GCC ¤Ï¤³¤Î̾Á°¤ò»È¤Ã¤Æ¡¢¥¢¥»¥ó¥Ö¥ê¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤È¤­¤Ë»È¤¨¤ëÌ¿Îá¤Î¼ïÎà¤ò·èÄꤹ¤ë¡£»ØÄê¤Ç¤­¤ë̾Á°¤Ï¼¡¤ÎÄ̤ꡣarm2¡¢arm250¡¢arm3¡¢arm6¡¢arm60¡¢arm600¡¢arm610¡¢arm620¡¢arm7¡¢arm7m¡¢arm7d¡¢arm7dm¡¢arm7di¡¢arm7dmi¡¢arm70¡¢arm700¡¢arm700i¡¢arm710¡¢arm710c¡¢arm7100¡¢arm7500¡¢arm7500fe¡¢arm7tdmi¡¢arm8¡¢strongarm¡¢strongarm110¡¢strongarm1100¡¢arm8¡¢arm810¡¢arm9¡¢arm9tdmi¡£-mtune= ¤Ï -mcpu= ¤ÎÊÌ̾¤Ç¤¢¤ê¡¢¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î GCC ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤¢¤ë¡£
-march=<name>
¤³¤ì¤Ï¡¢¥¿¡¼¥²¥Ã¥È¤Î ARM ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã̾¤ò»ØÄꤹ¤ë¡£GCC ¤Ï¤³¤Î̾Á°¤ò»È¤Ã¤Æ¡¢¥¢¥»¥ó¥Ö¥ê¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤È¤­¤Ë»È¤¨¤ëÌ¿Îá¤Î¼ïÎà¤ò·èÄꤹ¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢-mcpu= ¥ª¥×¥·¥ç¥ó¤ÈÁȤ߹ç¤ï¤»¤Æ¡¢¤¢¤ë¤¤¤Ï-mcpu= ¥ª¥×¥·¥ç¥ó¤ÎÂå¤ï¤ê¤Ë»È¤¦¤³¤È¤¬½ÐÍè¤ë¡£»ØÄê¤Ç¤­¤ë̾Á°¤Ï¡¢armv2¡¢armv2a¡¢armv3¡¢armv3m¡¢armv4¡¢armv4t ¤Ç¤¢¤ë¡£
-mfpe=<number>
-mfp=<number>
¤³¤ì¤Ï¡¢¥¿¡¼¥²¥Ã¥È¤ÇÍøÍѲÄǽ¤ÊÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Î¥Ð¡¼¥¸¥ç¥ó¤ò»ØÄꤹ¤ë¡£»ØÄê¤Ç¤­¤ëÃÍ¤Ï 2 ¤È 3 ¤Ç¤¢¤ë¡£-mfp= ¤Ï-mfpe= ¤ÎÊÌ̾¤Ç¤¢¤ê¡¢¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î GCC ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¤¢¤ë¡£
-mstructure-size-boundary=<n>
Á´¤Æ¤Î¹½Â¤ÂΤȶ¦ÍÑÂΤÎÂ礭¤µ¤ò¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¥Ó¥Ã¥È¿ô¤ÎÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤ë¡£»ØÄê²Äǽ¤ÊÃÍ¤Ï 8 ¤È 32 ¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢¥Ä¡¼¥ë¡¦¥Á¥§¡¼¥ó¤¬°Û¤Ê¤ë¤ÈÊѤï¤Ã¤Æ¤¯¤ë¡£COFF ¸þ¤±¤Î¥Ä¡¼¥ë¥Á¥§¡¼¥ó¤ËÂФ·¤Æ¤Ï¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 8 ¤Ç¤¢¤ë¡£Â礭¤¤¿ô¤ò»ØÄꤹ¤ì¤Ð¤½¤ì¤À¤±¹â®¤Ç¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤¬ÆÀ¤é¤ì¤ë¤¬¡¢¥×¥í¥°¥é¥à¤Î¥µ¥¤¥º¤âÂ礭¤¯¤Ê¤ë¡£»ØÄê¤Ç¤­¤ëÆó¤Ä¤ÎÃͤϡ¢ÀøºßŪ¤Ë¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£°ìÊý¤ÎÃͤǥ³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤Ï¡¢¤â¤¦°ìÊý¤ÎÃͤǥ³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤ä¥é¥¤¥Ö¥é¥ê¤È¹ç¤ï¤»¤¿¤È¤­¡¢¤½¤ì¤¬¹½Â¤ÂΤ䶦ÍÑÂΤò»È¤Ã¤¿¾ðÊó¤ò¸ò´¹¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢Æ°ºî¤¹¤ë¤È¤Ïɬ¤º¤·¤â´üÂԤǤ­¤Ê¤¤¡£¥×¥í¥°¥é¥Þ¤Î³§¤µ¤ó¤Ë¤Ï 32 ¤È¤¤¤¦Ãͤò»È¤¦¤³¤È¤ò¤ª´«¤á¤¹¤ë¡£¥Ä¡¼¥ë¥Á¥§¡¼¥ó¤Î¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤¬¤³¤ÎÃͤˤʤë²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£
-mabort-on-noreturn
noreturn ´Ø¿ô¤ÎºÇ¸å¤Ë´Ø¿ô abort ¤Î¸Æ½Ð¤·¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï´Ø¿ô¤¬Ìá¤í¤¦¤È¤·¤¿¤È¤­¤Ë¼Â¹Ô¤µ¤ì¤ë¡£


Node:Thumb Options, Next:, Previous:ARM Options, Up:Submodel Options

Thumb ¥ª¥×¥·¥ç¥ó


-mthumb-interwork
THUMB ¤È ARM ¤ÎÌ¿Î᥻¥Ã¥È´Ö¤Ç¤Î¸Æ¤Ó¤À¤·¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¤È¡¢Æó¤Ä¤ÎÌ¿Î᥻¥Ã¥È¤ò°ì¤Ä¤Î¥×¥í¥°¥é¥à¤ÎÃæ¤Ç»ÈÍѤ¹¤ë¤Î¤Ï¿®ÍêÀ­¤Ë·ç¤±¤ë¤³¤È¤Ë¤Ê¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡¢¡¢-mno-thumb-interwork ¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¤ï¤º¤«¤Ë¥³¡¼¥É¤¬¾®¤µ¤¯¤Ê¤ë¤¿¤á¤Ç¤¢¤ë¡£
-mtpcs-frame
Á´¤Æ¤ÎËöü¤Ç¤Ê¤¤´Ø¿ô¤ËÂФ·¡¢Thumb Procedure Call Standard ¤Ë½àµò¤¹¤ë¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤òÀ¸À®¤¹¤ë¡£(Ëöü´Ø¿ô¤È¤Ï¡¢Â¾¤Î´Ø¿ô¤òÁ´¤¯¤è¤Ð¤Ê¤¤´Ø¿ô¤Ç¤¢¤ë¡£) ¥Ç¥Õ¥©¥ë¥È¤Ï -mno-tpcs-frame ¤Ç¤¢¤ë¡£
-mtpcs-leaf-frame
Á´¤Æ¤ÎËöü´Ø¿ô¤ËÂФ·¡¢Thumb Procedure Call Standard ¤Ë½àµò¤¹¤ë¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤òÀ¸À®¤¹¤ë¡£(Ëöü´Ø¿ô¤È¤Ï¡¢Â¾¤Î´Ø¿ô¤òÁ´¤¯¤è¤Ð¤Ê¤¤´Ø¿ô¤Ç¤¢¤ë¡£) ¥Ç¥Õ¥©¥ë¥È¤Ï -mno-tpcs-leaf-frame ¤Ç¤¢¤ë¡£
-mlittle-endian
¥ê¥È¥ë¡¦¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤Çưºî¤¹¤ë¥×¥í¥»¥Ã¥µ¸þ¤±¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢Á´¤Æ¤Îɸ½à¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mbig-endian
¥Ó¥Ã¥°¡¦¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤Çưºî¤¹¤ë¥×¥í¥»¥Ã¥µ¸þ¤±¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-mstructure-size-boundary=<n>
Á´¤Æ¤Î¹½Â¤ÂΤȶ¦ÍÑÂΤÎÂ礭¤µ¤ò¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¥Ó¥Ã¥È¿ô¤ÎÇÜ¿ô¤ËÀÚ¤ê¾å¤²¤ë¡£»ØÄê²Äǽ¤ÊÃÍ¤Ï 8 ¤È 32 ¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢¥Ä¡¼¥ë¡¦¥Á¥§¡¼¥ó¤¬°Û¤Ê¤ë¤ÈÊѤï¤Ã¤Æ¤¯¤ë¡£COFF ¸þ¤±¤Î¥Ä¡¼¥ë¥Á¥§¡¼¥ó¤ËÂФ·¤Æ¤Ï¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 8 ¤Ç¤¢¤ë¡£Â礭¤¤¿ô¤ò»ØÄꤹ¤ì¤Ð¤½¤ì¤À¤±¹â®¤Ç¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤¬ÆÀ¤é¤ì¤ë¤¬¡¢¥×¥í¥°¥é¥à¤Î¥µ¥¤¥º¤âÂ礭¤¯¤Ê¤ë¡£»ØÄê¤Ç¤­¤ëÆó¤Ä¤ÎÃͤϡ¢ÀøºßŪ¤Ë¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£°ìÊý¤ÎÃͤǥ³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤Ï¡¢¤â¤¦°ìÊý¤ÎÃͤǥ³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤ä¥é¥¤¥Ö¥é¥ê¤È¹ç¤ï¤»¤¿¤È¤­¡¢¤½¤ì¤¬¹½Â¤ÂΤ䶦ÍÑÂΤò»È¤Ã¤¿¾ðÊó¤ò¸ò´¹¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢Æ°ºî¤¹¤ë¤È¤Ïɬ¤º¤·¤â´üÂԤǤ­¤Ê¤¤¡£¥×¥í¥°¥é¥Þ¤Î³§¤µ¤ó¤Ë¤Ï 32 ¤È¤¤¤¦Ãͤò»È¤¦¤³¤È¤ò¤ª´«¤á¤¹¤ë¡£¥Ä¡¼¥ë¥Á¥§¡¼¥ó¤Î¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤¬¤³¤ÎÃͤˤʤë²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£


Node:MN10200 Options, Next:, Previous:Thumb Options, Up:Submodel Options

MN10200 ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ Matushita MN10200 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¸þ¤±¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£


-mrelax
¥ê¥ó¥«¤ËÂФ·¡¢´ËϺÇŬ²½¥Ñ¥¹¤ò¼Â¹Ô¤·¤ÆÊ¬´ô¡¢¸Æ½Ð¤·¡¢ÀäÂÐ¥á¥â¥ê¥¢¥É¥ì¥¹¤òû¤¯¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ºÇ½ªÅª¤Ê¥ê¥ó¥¯Ãʳ¬¤Î¥³¥Þ¥ó¥É¹Ô¤Ç»È¤Ã¤¿¾ì¹ç¤Ë¤À¤±¸ú²Ì¤¬¤¢¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥°¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¡£


Node:MN10300 Options, Next:, Previous:MN10200 Options, Up:Submodel Options

MN10300 ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬¾¾²¼ MN10300 ¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mmult-bug
MN10300 ¥×¥í¥»¥Ã¥µ¤Î¾è»»Ì¿Îá¤Î¥Ð¥°¤ò²óÈò¤¹¤ë¤è¤¦¤Ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mno-mult-bug
MN10300 ¥×¥í¥»¥Ã¥µ¤Î¾è»»Ì¿Îá¤Î¥Ð¥°¤ò²óÈò¤¹¤ë¤è¤¦¤Ê¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤¡£
-mrelax
¥ê¥ó¥«¤ËÂФ·¡¢´ËϺÇŬ²½¥Ñ¥¹¤ò¼Â¹Ô¤·¤ÆÊ¬´ô¡¢¸Æ½Ð¤·¡¢ÀäÂÐ¥á¥â¥ê¥¢¥É¥ì¥¹¤òû¤¯¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ºÇ½ªÅª¤Ê¥ê¥ó¥¯Ãʳ¬¤Î¥³¥Þ¥ó¥É¹Ô¤Ç»È¤Ã¤¿¾ì¹ç¤Ë¤À¤±¸ú²Ì¤¬¤¢¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥°¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¡£


Node:M32R/D Options, Next:, Previous:MN10300 Options, Up:Submodel Options

M32R/D ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬»°É© M32R/D ¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mcode-model=small
Á´¤Æ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬²¼°Ì 16MB ¤ÎÈϰϤΥá¥â¥ê¤Ë¼ý¤Þ¤ê(¤½¤¦¤Ê¤Ã¤Æ¤¤¤ë¤È¥¢¥É¥ì¥¹¤¬ ld24 Ì¿Îá¤Ç¥í¡¼¥É²Äǽ¤Ç¤¢¤ë)¡¢Á´¤Æ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢bl Ì¿Îá¤ÇÅþã²Äǽ¤Ç¤¢¤ë¤ÈÁÛÄꤹ¤ë¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£

ÆÃÄê¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹²ÄǽÀ­¤Ï¡¢model °À­¤ÇÀßÄê²Äǽ¤Ç¤¢¤ë¡£

-mcode-model=medium
¥ª¥Ö¥¸¥§¥¯¥È¤Ï 32 ¥Ó¥Ã¥È¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î¤É¤³¤Ë¤¢¤Ã¤Æ¤âÎɤ¯(GCC ¤Ï¤½¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò¥í¡¼¥É¤¹¤ë¤Î¤Ë seth/add3 Ì¿Îá¤òÀ¸À®¤¹¤ë)¡¢Á´¤Æ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢bl Ì¿Îá¤ÇÅþã²Äǽ¤Ç¤¢¤ë¤ÈÁÛÄꤹ¤ë¡£
-mcode-model=large
¥ª¥Ö¥¸¥§¥¯¥È¤Ï 32 ¥Ó¥Ã¥È¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î¤É¤³¤Ë¤¢¤Ã¤Æ¤âÎɤ¯(GCC ¤Ï¤½¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò¥í¡¼¥É¤¹¤ë¤Î¤Ë seth/add3 Ì¿Îá¤òÀ¸À®¤¹¤ë)¡¢¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï¡¢bl Ì¿Îá¤Ç¤ÏÅþã¤Ç¤­¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¤ÈÁÛÄꤹ¤ë(GCC ¤Ï¡¢¤µ¤é¤ËÃÙ¤¤ seth/add3/jl Ì¿ÎáÎó¤òÀ¸À®¤¹¤ë)¡£
-msdata=none
¾®¥Ç¡¼¥¿Îΰè¤ò»È¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£ÊÑ¿ô¤Ï .data¡¢bss¡¢.rodata ¤Î¤É¤ì¤«°ì¤Ä¤ËÃÖ¤«¤ì¤ë(section °À­¤¬»ØÄꤵ¤ì¤ì¤Ð¤½¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤)¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£

¾®¥Ç¡¼¥¿Îΰè¤Ï¡¢¥»¥¯¥·¥ç¥ó .sdata ¤È .sbss ¤«¤é¤Ê¤ë¡£section °À­¤Ç¤³¤Î¤É¤Á¤é¤«¤Î¥»¥¯¥·¥ç¥ó¤ò»ØÄꤹ¤ì¤Ð¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ò¾®¥Ç¡¼¥¿Îΰè¤ËÌÀ¼¨Åª¤ËÃÖ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£

-msdata=sdata
¾®¤µ¤¤¥°¥í¡¼¥Ð¥ë¤Ê¥Ç¡¼¥¿¤ÈÀÅŪ¤Ê¥Ç¡¼¥¿¤ò¾®¥Ç¡¼¥¿Îΰè¤ËÃÖ¤­¤Ï¤¹¤ë¤¬¡¢¤½¤ì¤é¤ò»²¾È¤¹¤ë¤¿¤á¤ËÆÃÊ̤ʥ³¡¼¥É¤ÏÀ¸À®¤·¤Ê¤¤¡£
-msdata=use
¾®¤µ¤¤¥°¥í¡¼¥Ð¥ë¤Ê¥Ç¡¼¥¿¤ÈÀÅŪ¤Ê¥Ç¡¼¥¿¤ò¾®¥Ç¡¼¥¿Îΰè¤ËÃÖ¤­¡¢¤½¤ì¤é¤ò»²¾È¤¹¤ë¤¿¤á¤ËÆÃÊ̤ʥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-G num
num ¥Ð¥¤¥È°Ê²¼¤ÎÂ礭¤µ¤Î¥°¥í¡¼¥Ð¥ë¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤ÈÀÅŪ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤ò¡¢ÉáÄ̤Υǡ¼¥¿¥»¥¯¥·¥ç¥ó¤ä bss ¥»¥¯¥·¥ç¥ó¤Ç¤Ï¤Ê¤¯¡¢¾®¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤ä¾® bss ¥»¥¯¥·¥ç¥ó¤ËÃÖ¤¯¡£num ¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 8 ¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢-msdata ¥ª¥×¥·¥ç¥ó¤Çsdata ¤« use ¤Î¤É¤Á¤é¤«¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

Á´¤Æ¤Î¥â¥¸¥å¡¼¥ë¤Ï¡¢-G num ¤ÇƱ¤¸Ãͤò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£num ¤ÎÃͤ¬°ã¤Ã¤Æ¤¤¤ë¤È¡¢Àµ¤·¤¯Æ°ºî¤¹¤ë¤«¤É¤¦¤«¤ï¤«¤é¤Ê¤¤¡£Æ°ºî¤·¤Ê¤¤¾ì¹ç¤Ï¡¢¥ê¥ó¥«¤¬¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¤Ï¤º¤Ç¤¢¤ë¡£Àµ¤·¤¯¤Ê¤¤¥³¡¼¥É¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£


Node:M88K Options, Next:, Previous:M32R/D Options, Up:Submodel Options

M88K ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ Motorola 88k ¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-m88000
m88100 ¤È m88110 ¤ÎξÊý¤ÇÀµ¤·¤¯Æ°ºî¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-m88100
m88100 ¤ÇºÇ¤âÎɤ¯Æ°ºî¤¹¤ë¤¬¡¢m88110 ¤Ç¤âưºî¤Ï¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-m88110
m88110 ¤ÇºÇ¤âÎɤ¯Æ°ºî¤·¡¢m88100 ¤Ç¤Ïưºî¤·¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-mbig-pic
¼¡´ü¥Ð¡¼¥¸¥ç¥ó¤Çºï½üͽÄê¤Î¸Å¤¤¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£-fPIC ¤ò»È¤ª¤¦¡£
-midentify-revision
¥¢¥»¥ó¥Ö¥é½ÐÎÏ¤Ë ident µ¿»÷Ì¿Îá¤òÆþ¤ì¤Æ¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë̾¡¢¥³¥ó¥Ñ¥¤¥é̾¤È¤½¤Î¥Ð¡¼¥¸¥ç¥ó¡¢¥¿¥¤¥à¥¹¥¿¥ó¥×¡¢¥³¥ó¥Ñ¥¤¥é¤Ø¤Î¥ª¥×¥·¥ç¥ó¤òµ­Ï¿¤¹¤ë¡£
-mno-underscores
¥¢¥»¥ó¥Ö¥é½ÐÎϤǡ¢¥·¥ó¥Ü¥ë̾¤ÎÀèÆ¬¤Ë¥¢¥ó¥À¡¼¥¹¥³¥¢¤òÉÕ¤±¤º¤Ë¤½¤Î̾Á°¤ò½ÐÎϤ¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤½¤ì¤¾¤ì¤Î̾Á°¤ÎÁ°¤Ë¥¢¥ó¥À¡¼¥¹¥³¥¢¤¬ÉÕ¤¯¡£
-mocs-debug-info
-mno-ocs-debug-info
88open Object Compatibility Standard, "OCS" ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ëÄɲäΥǥХå°¾ðÊó(³Æ¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤Ç¤Î¥ì¥¸¥¹¥¿¤Î»ÈÍѾõ¶·)¤ò½ÐÎϤ¹¤ë(½ÐÎϤ·¤Ê¤¤)¡£¤³¤ÎÄɲåǥХå°¾ðÊ󤬤¢¤ë¤È¡¢¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤¬ºï½ü¤µ¤ì¤¿¥³¡¼¥É¤ò¥Ç¥Ð¥Ã¥°¤Ç¤­¤ë¡£DG/UX¡¢SVR4¡¢Delta 88 SVR3.2 ¤Î¾ì¹ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢¤³¤Î¾ðÊó¤ò´Þ¤á¤ë¡£Â¾¤Î 88k ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¤³¤Î¾ðÊó¤ò¾Êά¤¹¤ë¡£
-mocs-frame-position
¼«Æ°ÊÑ¿ô¡¢¤½¤ì¤Ë¥¹¥¿¥Ã¥¯¾å¤Ë³ÊǼ¤µ¤ì¤ë°ú¿ô¤ËÂФ¹¤ë COFF ·Á¼°¥Ç¥Ð¥Ã¥°¾ðÊó¤ò½ÐÎϤ¹¤ë¤È¤­¡¢Àµµ¬¤Î¥Õ¥ì¡¼¥à¥¢¥É¥ì¥¹¡¢¤Ä¤Þ¤ê´Ø¿ô¤ÎÆþ¤ê¸ýÅÀ¤Ç¤Î¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿(¥ì¥¸¥¹¥¿ 31)¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤ò»È¤¦¡£DG/UX¡¢SVR4¡¢Delta88 SVR3.2¡¢BCS ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï-mocs-frame-position ¤ò»È¤Ã¤Æ¤¤¤ë¡£Â¾¤Î 88k ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ï -mno-ocs-frame-position ¤Ç¤¢¤ë¡£
-mno-ocs-frame-position
¼«Æ°ÊÑ¿ô¡¢¤½¤ì¤Ë¥¹¥¿¥Ã¥¯¾å¤Ë³ÊǼ¤µ¤ì¤ë°ú¿ô¤ËÂФ¹¤ë COFF ·Á¼°¥Ç¥Ð¥Ã¥°¾ðÊó¤ò½ÐÎϤ¹¤ë¤È¤­¡¢¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿(¥ì¥¸¥¹¥¿ 30)¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤ò»È¤¦¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥Ç¥Ð¥Ã¥°¾ðÊó¤¬ -g ¥ª¥×¥·¥ç¥ó¤ÇÁªÂò¤µ¤ì¤Æ¤¤¤ë¤È¤­¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤Ïºï½ü¤µ¤ì¤Ê¤¤¡£
-moptimize-arg-area
-mno-optimize-arg-area
´Ø¿ô¤Î°ú¿ô¤¬¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤Ë¤É¤Î¤è¤¦¤Ë³ÊǼ¤µ¤ì¤ë¤«¤òÀ©¸æ¤¹¤ë¡£-moptimize-arg-area ¤ò»ØÄꤹ¤ë¤ÈºÇŬ²½¤Ë¤è¤ê»ÈÍÑ¥á¥â¥ê¤òÀáÌ󤹤롣¤À¤¬¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï 88open ¤Î»ÅÍͤËÈ¿¤¹¤ë¡£¤½¤ÎÈ¿ÂФΥª¥×¥·¥ç¥ó -mno-optimze-arg-area ¤Ï¡¢88open µ¬³Ê¤Ë°ìÃפ¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢°ú¿ôÎΰè¤ÎºÇŬ²½¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡£
-mshort-data-num
¥Ç¡¼¥¿¤Ø¤Î»²¾È¤ò¤è¤ê¾®¤µ¤¯¤¹¤ë¤¿¤á¤Ë¡¢¤½¤ì¤é¤òr0 ÁêÂФˤ¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢Ãͤò¥í¡¼¥É¤¹¤ë¤Î¤¬°ì¸Ä¤ÎÌ¿Îá¤Ç¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë(ÉáÄ̤ÏÌ¿ÎáÆó¸ÄɬÍפǤ¢¤ë)¡£¤É¤Î¥Ç¡¼¥¿»²¾È¤¬±Æ¶Á¤ò¼õ¤±¤ë¤«¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë num ¤ÇÄ´À°¤Ç¤­¤ë¡£Î㤨¤Ð¡¢-mshort-data-512 ¤È»ØÄꤹ¤ë¤È¡¢±Æ¶Á¤ò¼õ¤±¤ë¥Ç¡¼¥¿»²¾È¤Ï512 ¥Ð¥¤¥È̤Ëþ¤ÎÊѰ̤ò´Þ¤à¤â¤Î¤Ç¤¢¤ë¡£-mshort-data-num ¤Ï¡¢num ¤¬ 64k ¤è¤êÂ礭¤¤¤È¸ú²Ì¤¬¤Ê¤¤¡£
-mserialize-volatile
-mno-serialize-volatile
Ã༡Ū¤Ê´øÈ¯À­¥á¥â¥ê»²¾È¤Î°ì´ÓÀ­¤òÊݾڤ¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡¢¤¢¤ë¤¤¤ÏÀ¸À®¤·¤Ê¤¤¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï°ì´ÓÀ­¤ÏÊݾڤµ¤ì¤ë¡£

MC88110 ¥×¥í¥»¥Ã¥µ¤Ë¤è¤ê¤Ê¤µ¤ì¤ë¥á¥â¥ê»²¾È¤Î½ç½ø¤Ï¡¢¤½¤Î»²¾È¤òɬÍפȤ¹¤ëÌ¿Îá¤Î½ç½ø¤Ë¤Ïɬ¤º¤·¤â°ìÃפ·¤Ê¤¤¡£ÆÃ¤Ë¡¢¥í¡¼¥ÉÌ¿Îá¤ÏÀè¹Ô¤¹¤ë¥¹¥È¥¢Ì¿Îá¤è¤ê¤âÀè¤Ë¼Â¹Ô¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£¤³¤Î¤è¤¦¤ÊʤÙÂØ¤¨¤Ï¡¢Ã༡Ū¤Ê´øÈ¯À­¥á¥â¥ê»²¾È¤Î°ì´ÓÀ­¤ò¡¢¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¤Î¾ì¹ç¤Ë¤ÏÇˤ롣°ì´ÓÀ­¤¬Êݾڤµ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¤Ï¡¢GNU C ¤ÏɬÍפ˱þ¤¸¤ÆÆÃÊ̤ÊÌ¿Îá¤òÀ¸À®¤·¡¢¶¯À©Åª¤ËŬÀÚ¤Ê½ç½ø¤Ç¼Â¹Ô¤µ¤»¤ë¤è¤¦¤Ë¤¹¤ë¡£

MC88100 ¥×¥í¥»¥Ã¥µ¤Ï¥á¥â¥ê»²¾È¤ÎʤÙÂØ¤¨¤ò¹Ô¤Ê¤ï¤Ê¤¤¤Î¤Ç¡¢¾ï¤ËÃ༡Ū¤Ê°ì´ÓÀ­¤òÄ󶡤¹¤ë¡£¤À¤¬¡¢GNU C ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ -m88100 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ç¤â¡¢ÆÃÊ̤ÊÌ¿Îá¤òÀ¸À®¤·¡¢°ì´ÓÀ­¤òÊݾڤ¹¤ë¤Î¤Ç¡¢¤½¤ÎÀ¸À®¥³¡¼¥É¤Ï M88110 ¥×¥í¥»¥Ã¥µ¤Ç¤â¼Â¹Ô²Äǽ¤Ç¤¢¤ë¡£M88100 ¥×¥í¥»¥Ã¥µ¤Ç¤·¤«¼Â¹Ô¤·¤Ê¤¤¤Ä¤â¤ê¤Ê¤é¡¢-mno-serialize-volatile ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

°ì´ÓÀ­¤òÊݾڤ¹¤ë¤¿¤á¤ËÀ¸À®¤µ¤ì¤¿Í¾Ê¬¤Î¥³¡¼¥É¤Ï¡¢ÆÉ¼Ô¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¼Â¹Ô®Å٤˱ƶÁ¤òµÚ¤Ü¤¹²ÄǽÀ­¤¬¤¢¤ë¡£Êݾڤ·¤Ê¤¯¤Æ¤âÂç¾æÉפǤ¢¤ë¤³¤È¤¬È½¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢-mno-serialize-volatile ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

-msvr4
-msvr3
SVR4 ¤Ë´Ø·¸¤·¤¿³ÈÄ¥µ¡Ç½¤ò¥ª¥ó¤Ë¤·¤¿¤ê(-msvr4)¡¢¥ª¥Õ¤Ë¤¹¤ë(-msvr3¡£¤³¤ì¤Ï°Ê²¼¤Î»ö¹à¤òÀ©¸æ¤¹¤ë¡£

  1. ¤É¤Î¥¢¥»¥ó¥Ö¥é¹½Ê¸¤ÎÊѼï¤ò»È¤¦¤«¡£
  2. -msvr4 ¤ò»ØÄꤹ¤ë¤È¡¢C ¥×¥ê¥×¥í¥»¥Ã¥µ¤¬¡¢SVR4 ¤Ç»È¤ï¤ì¤Æ¤¤¤ë#pragma weak ¤òǧ¼±¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£
  3. -msvr4 ¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï SVR4 ¤Ç»È¤ï¤ì¤Æ¤¤¤ëÄɲäÎÀë¸ÀÀ©¸æ»Ò¤òȯ¹Ô¤¹¤ë¡£

-msvr4 ¤Ï¡¢m88k-motorola-sysv4 ¤È m88k-dg-dgux ¤È¤¤¤¦ m88k ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£-msvr3 ¤Ï¡¢¤½¤Î¾¤ÎÁ´¤Æ¤Î m88k ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£

-mversion-03.00
¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÇÑ¤ì¤Æ¤ª¤ê¡¢Ìµ»ë¤µ¤ì¤ë¡£
-mno-check-zero-division
-mcheck-zero-division
À°¿ô¤Î¥¼¥í¤Ë¤è¤ë½ü»»¤¬¸¡½Ð¤µ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¸¡½Ð¤µ¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£

MC88100 ¥×¥í¥»¥Ã¥µ¤Î´ö¤Ä¤«¤Î¥â¥Ç¥ë¤Ç¤Ï¡¢ÆÃÄê¤Î¾ò·ï²¼¤Ç¥¼¥í¤Ë¤è¤ëÀ°¿ô½ü»»¤ò¥È¥é¥Ã¥×¤Ç¤­¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤½¤¦¤¤¤¦¥×¥í¥»¥Ã¥µ¤Ç¼Â¹Ô¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ï¡¢GCC ¤Ï¥¼¥í¤Ë¤Ê¤ë½ü¿ô¤òÌÀ¼¨Åª¤Ë¸¡ºº¤·¡¢¸¡½Ð¤µ¤ì¤¿¾ì¹ç¤Ë¤ÏÎã³°ÈÖ¹æ 503 ¤Ç¥È¥é¥Ã¥×¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£-mno-check-zero-division ¤ò»È¤¦¤È¡¢MC88100 ¥×¥í¥»¥Ã¥µ¤Ç¼Â¹Ô¤¹¤ë¤è¤¦¤ËÀ¸À®¤µ¤ì¤¿¥³¡¼¥É¤ËÂФ·¡¢¤³¤ÎÍͤʸ¡ºº¤ò¹Ô¤Ê¤ï¤Ê¤¤¡£

GNU C ¤Ï¡¢MC88110 ¥×¥í¥»¥Ã¥µ¤¬¡¢¥¼¥í¤Ë¤è¤ëÀ°¿ô½ü»»¤¬µ¯¤³¤Ã¤¿¾ì¹çÁ´¤Æ¤òÀµ¤·¤¯¸¡½Ð¤Ç¤­¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£-m88110 ¤ò»ØÄꤷ¤¿¤È¤­¤Ï¡¢-mcheck-zero-division ¤â -mno-check-zero-division ¤â¤É¤Á¤é¤â̵»ë¤µ¤ì¡¢½ü¿ô¤¬¥¼¥í¤Ë¤Ê¤ë¤«¤É¤¦¤«¤òÌÀ¼¨Åª¤Ë¸¡ºº¤¹¤ë¥³¡¼¥É¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£

-muse-div-instruction
MC88100 ¥×¥í¥»¥Ã¥µ¤Ç¤ÎÉ乿ÉÕ¤­À°¿ô½ü»»¤ËÂФ·¡¢div Ì¿Îá¤ò»È¤¦¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢div Ì¿Îá¤Ï»È¤ï¤ì¤Ê¤¤¡£

MC88100 ¥×¥í¥»¥Ã¥µ¤Ç¤Ï¡¢É乿ÉÕ¤­¤ÎÀ°¿ô½ü»»Ì¿Îá(div)¤Ï¡¢¥ª¥Ú¥é¥ó¥É¤¬Éé¤Î¾ì¹ç¤Ï OS¤Ø¤Î¥È¥é¥Ã¥×¤òȯÀ¸¤¹¤ë¡£OS ¤ÏÆ©²áŪ¤Ë±é»»¤ò´°Î»¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢¼Â¹Ô»þ´Ö¤¬Èó¾ï¤Ë¤«¤«¤ë¤³¤È¤Ë¤Ê¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢MC88100 ¥×¥í¥»¥Ã¥µ¤Ç¼Â¹Ô¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ï¡¢GCC ¤ÏÉ乿ÉÕ¤­À°¿ô½ü»»¤ò¡¢É乿¤Ê¤·À°¿ô½ü»»Ì¿Îá(divu)¤ò»È¤Ã¤Æ¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢OS ¤Ø¤Î¥È¥é¥Ã¥×¤È¤¤¤¦Â礭¤Ê¥Ú¥Ê¥ë¥Æ¥£¤ò²óÈò¤·¤Æ¤¤¤ë¡£¤³¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Î¥³¥¹¥È¤Ï¡¢¼Â¹Ô»þ´Ö¤È¥³¡¼¥É¥µ¥¤¥º¤ÎξÌ̤Ǿ®¤µ¤¯¤Ê¤Ã¤Æ¤¤¤ë¡£ÆÉ¼Ô¤Î¥×¥í¥°¥é¥à¤Ç¡¢½ÅÍפÊÉ乿ÉÕ¤­À°¿ô½ü»»¤¬Æó¤Ä¤ÎÉé¤Ç¤Ê¤¤¥ª¥Ú¥é¥ó¥É¤ËÂФ·¤Æ¼Â¹Ô¤µ¤ì¤ëÈϰϤʤ顢div Ì¿Îá¤òľÀܻȤ¦¤Î¤¬Ë¾¤Þ¤·¤¤¡£

MC88110 ¥×¥í¥»¥Ã¥µ¤Î¾ì¹ç¤Ï¡¢div Ì¿Îá(divs Ì¿Îá¤È¤·¤Æ¤âÃΤé¤ì¤Æ¤¤¤ë)¤Ï¡¢OS ¤Ø¤Î¥È¥é¥Ã¥×¤òȯÀ¸¤¹¤ë¤³¤È¤Ê¤¯¡¢Éé¤Î¥ª¥Ú¥é¥ó¥É¤ò½èÍý¤¹¤ë¡£-m88110 ¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Ï¡¢-muse-div-instruction ¤Ï̵»ë¤µ¤ì¡¢div Ì¿Î᤬É乿ÉÕ¤­À°¿ô½ü»»¤Ë»È¤ï¤ì¤ë¡£

INT_MIN ¤ò -1 ¤Ç³ä¤Ã¤¿·ë²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤ÆÍߤ·¤¤¡£ÆÃ¤Ë¡¢¤³¤Î¤è¤¦¤Ê³ä¤ê»»¤Îưºî¤Ï¡¢-muse-div-instruction ¤Î̵ͭ¤ÇÊѤï¤Ã¤Æ¤¯¤ë¡£

-mtrap-large-shift
-mhandle-large-shift
¥·¥Õ¥È¥Ó¥Ã¥È¿ô¤¬ 31 ¥Ó¥Ã¥È¤ò±Û¤¨¤ë¤â¤Î¤ò¸¡½Ð¤¹¤ë¥³¡¼¥É¤òÁÞÆþ¤¹¤ë¡£¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¤½¤ì¤¾¤ì¡¢¤½¤Î¤è¤¦¤Ê¥·¥Õ¥ÈÌ¿Îá¤ò¥È¥é¥Ã¥×¤¹¤ë¤«¡¢Àµ¤·¤¯¼è¤ê°·¤¦¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢GCC ¤Ï¥·¥Õ¥È¤Î¥Ó¥Ã¥È¿ô¤¬Â礭¤¯¤Æ¤âÆÃ¤Ë²¿¤â¤·¤Ê¤¤¡£
-mwarn-passed-structs
´Ø¿ô¤¬°ú¿ô¤äÌá¤êÃͤȤ·¤Æ¹½Â¤ÂΤòÅϤ·¤¿¤È¤­¤Ë·Ù¹ð¤¹¤ë¡£¹½Â¤ÂΤÎÅϤ·Êý¤Îµ¬Ìó¤Ï¡¢C ¸À¸ì¤¬¿Ê²½¤¹¤ë¤Ë¤Ä¤ì¤ÆÊѤï¤Ã¤Æ¤­¤Æ¤ª¤ê¡¢°Ü¿¢¾å¤ÎÌäÂê¤Î¸µ¤Ë¤Ê¤ë¤³¤È¤¬Â¿¤¤¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢GCC ¤Ï¤³¤Î·Ù¹ð¤Ï½Ð¤µ¤Ê¤¤¡£


Node:RS/6000 and PowerPC Options, Next:, Previous:M88K Options, Up:Submodel Options

IBM RS/6000 ¤È PowerPC ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ IBM RS/6000 ¤È PowerPC ÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mpower
-mno-power
-mpower2
-mno-power2
-mpowerpc
-mno-powerpc
-mpowerpc-gpopt
-mno-powerpc-gpopt
-mpowerpc-gfxopt
-mno-powerpc-gfxopt
-mpowerpc64
-mno-powerpc64
GCC ¤Ï¡¢RS/6000 ¤È PowerPC ¤Ë¤Ä¤¤¤Æ¡¢Æó¤Ä¤Î´Ø·¸¤Î¤¢¤ëÌ¿Î᥻¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£POWER Ì¿Î᥻¥Ã¥È¤Ï¡¢ºÇ½é¤Î RS/6000 ¥·¥¹¥Æ¥à¤Ç»È¤ï¤ì¤Æ¤¤¤¿rios ¥Á¥Ã¥×¥»¥Ã¥È¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤¿Ì¿Î᥻¥Ã¥È¤Ç¤¢¤ë¡£PowerPC Ì¿Î᥻¥Ã¥È¤Ï¡¢¥â¥È¥í¡¼¥é¤Î¥Þ¥¤¥¯¥í¥×¥í¥»¥Ã¥µ MPC5xx¡¢MPC6xx¡¢MPC8xx ¤È IBM ¤Î¥Þ¥¤¥¯¥í¥×¥í¥»¥Ã¥µ 4xx ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤¢¤ë¡£

¤É¤Á¤é¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤â¾Êý¤Î¥µ¥Ö¥»¥Ã¥È¤Ë¤Ï¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£¤·¤«¤·¡¢Î¾Êý¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¶¦Ä̤ÎÌ¿Îá¤ÎÂ礭¤Ê¥µ¥Ö¥»¥Ã¥È¤¬¤¢¤ë¡£POWER ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥×¥í¥»¥Ã¥µ¤Ë¤Ï MQ ¥ì¥¸¥¹¥¿¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£

¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¼«Ê¬¤Î¥×¥í¥»¥Ã¥µ¤ÇÍøÍѲÄǽ¤ÊÌ¿Îá¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢GCC ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó»þ¤Ë·èÄꤵ¤ì¤ë¡£-mcpu=cpu_type ¤ò»ØÄꤹ¤ë¤È¡¢¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Î»ØÄê¤ò¾å½ñ¤­¤¹¤ë¡£¾å¤ËÎóµó¤·¤¿¥ª¥×¥·¥ç¥ó¤Ç¤Ï¤Ê¤¯¡¢-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤³¤È¤ò¤ª´«¤á¤¹¤ë¡£

-mpower ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢POWER ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤Î¤ß¸ºß¤¹¤ëÌ¿Îá¤òÀ¸À®¤·¤¿¤ê¡¢MQ ¥ì¥¸¥¹¥¿¤ò»È¤¦¤³¤È¤ò GCC ¤Ëµö¤¹¡£-mpower2 ¤ò»ØÄꤹ¤ë¤È¡¢-power ¤ò´Þ¤ó¤À¤¦¤¨¤Ë¡¢POWER2 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤Ï¸ºß¤¹¤ë¤¬¡¢¸µ¡¹¤Î POWER ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤Ï¸ºß¤·¤Ê¤¤Ì¿Îá¤òÀ¸À®¤¹¤ë¤³¤È¤ò GCC ¤Ëµö¤¹¡£

-mpowerpc ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢PowerPC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î32¥Ó¥Ã¥ÈÈǤΥµ¥Ö¥»¥Ã¥È¤Ë¤Î¤ß¸ºß¤¹¤ëÌ¿Îá¤ÎÀ¸À®¤ò GCC ¤Ëµö¤¹¡£-mpowerpc-gpopt ¤ò»ØÄꤹ¤ë¤È¡¢-mpowerpc ¤ò´Þ¤ó¤À¤¦¤¨¤Ë¡¢PowerPC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î General Purpose ¥°¥ë¡¼¥×¤Î¥ª¥×¥·¥ç¥ó¤ÎÌ¿Îá¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤ì¤Ë¤Ï¡¢ÉâÆ°¾®¿ôÅÀÊ¿Êýº¬Ì¿Îá¤â´Þ¤Þ¤ì¤ë¡£-mpowerpc-gfxopt ¤ò»ØÄꤹ¤ë¤È¡¢-mpowerpc ¤ò´Þ¤ó¤À¤¦¤¨¤Ë¡¢PowerPC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î Graphics ¥°¥ë¡¼¥×¤Î¥ª¥×¥·¥ç¥ó¤ÎÌ¿Îá¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤ì¤Ë¤ÏÉâÆ°¾®¿ôÅÀÁªÂòÌ¿Îá¤â´Þ¤Þ¤ì¤ë¡£

-mpowerpc64 ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï´°Á´¤Ê PowerPC64 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤¢¤ë 64 ¥Ó¥Ã¥ÈÌ¿Îá¤òÄɲäÇÀ¸À®¤·¡¢GPR ¤ò 64 ¥Ó¥Ã¥È¤ÎÇܸìÎ̤Ȥ·¤Æ¼è¤ê°·¤¦¡£¥Ç¥Õ¥©¥ë¥È¤Ï -mno-powerpc64 ¤Ç¤¢¤ë¡£

-mno-power ¤È -mno-powerpc ¤ÎξÊý¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤ÏξÊý¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¶¦Ä̤¹¤ëÌ¿Î᥵¥Ö¥»¥Ã¥È¤Ë²Ã¤¨¤Æ´ö¤Ä¤«¤ÎÆÃÊ̤ÊAIX ¶¦Ḁ̈⡼¥É¸Æ½Ð¤·Ì¿Îá¤Î¤ß¤ò»È¤¤¡¢MQ ¥ì¥¸¥¹¥¿¤Ï»È¤ï¤Ê¤¤¤è¤¦¤Ë¤Ê¤ë¡£-mpower ¤È -mpowerpc ¤òξÊý»ØÄꤹ¤ë¤È¡¢¤É¤Á¤é¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¤É¤ÎÌ¿Îá¤Ç¤â»È¤¦¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¡¢MQ ¥ì¥¸¥¹¥¿¤â»È¤¦¤è¤¦¤Ë¤Ê¤ë¡£Motorola MPC601 ¤Ë¤Ï¤³¤ÎξÊý¤ò»ØÄꤹ¤ë¤³¤È¡£

-mnew-mnemonics
-mold-mnemonics
¤É¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¤òÀ¸À®¤µ¤ì¤ë¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ç»È¤¦¤«¤òÁª¤Ö¡£-mnew-mnemonisc ¤ò»ØÄꤹ¤ë¤È¡¢PowerPC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¸þ¤±¤ËÄêµÁ¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥é¥Ë¡¼¥â¥Ë¥Ã¥¯¤ò»È¤Ã¤Æ½ÐÎϤ¹¤ë¡£°ìÊý¡¢-mold-mnemonisc ¤ò»ØÄꤹ¤ë¤È¡¢POWER ¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤËÄêµÁ¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥é¥Ë¡¼¥â¥Ë¥Ã¥¯¤ò»ÈÍѤ¹¤ë¡£°ì¤Ä¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤·¤«ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤Ì¿Îá¤Ï¡¢¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï°ì¼ïÎष¤«¤Ê¤¤¡£GCC ¤Ï¡¢°ì¼ïÎष¤«¤Ê¤¤¥Ë¡¼¥â¥Ë¥Ã¥¯¤Ï¡¢¤É¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¤«¤Ë´Ø·¸¤Ê¤¯¡¢¤½¤ì¤ò»È¤¦¡£

GCC ¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤ë¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ËŬ¤·¤¿¥Ë¡¼¥â¥Ë¥Ã¥¯¤ò¥Ç¥Õ¥©¥ë¥È¤Ç»È¤¦¡£-mcpu=cpu_type ¤ò»ØÄꤹ¤ë¤È¡¢¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤ¬ÊѤï¤ë¤³¤È¤â¤¢¤ë¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤òºî¤ë¤Î¤Ç¤Ê¤¤¸Â¤ê¡¢ÉáÄÌ¤Ï -mnew-mnemonics ¤ä -mold-mnemonics ¤ò»ØÄꤹ¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢Âå¤ï¤ê¤Ë¥Ç¥Õ¥©¥ë¥È¤ò¼õ¤±Æþ¤ì¤ë¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£

-mcpu=cpu_type
¥¢¡¼¥­¥Æ¥¯¥Á¥ã·¿¡¢¥ì¥¸¥¹¥¿»ÈÍÑË¡¡¢¥Ë¡¼¥â¥Ë¥Ã¥¯¤ÎÁªÂò¡¢Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥Ñ¥é¥á¡¼¥¿¤ò¡¢µ¡¼ï cpu_type ÍѤËÀßÄꤹ¤ë¡£cpu_type ¤È¤·¤Æ»È¤¨¤ë¤Î¤Ï¡¢rs6000¡¢rios1¡¢rios2¡¢rsc¡¢601¡¢602¡¢603¡¢603e¡¢604¡¢604e¡¢620¡¢740¡¢750¡¢power¡¢power2¡¢powerpc¡¢403¡¢505¡¢801¡¢821¡¢823¡¢860¡¢common ¤Ç¤¢¤ë¡£-mcpu=power¡¢-mcpu=power2¡¢-mcpu=powerpc ¤Ï¡¢POWER¡¢POWER2¡¢¤½¤ì¤Ë½ã¿è¤Ê PowerPC(¤Ä¤Þ¤ê¡¢MPC601 ¤Ï´Þ¤Þ¤Ê¤¤) ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ÎÈÆÍѤε¡¼ï¤ò»ØÄꤹ¤ë¡£¥¹¥±¥¸¥å¡¼¥ê¥ó¥°ÍѤˤϡ¢Å¬ÀÚ¤ÊÈÆÍÑ¥×¥í¥»¥Ã¥µ¥â¥Ç¥ë¤òÁÛÄꤹ¤ë¡£

¥ª¥×¥·¥ç¥ó -mcpu=rios1¡¢-mcpu=rios2¡¢-mcpu=rsc¡¢-mcpu=power¡¢-mcpu=power2 ¤Î¤É¤ì¤«¤ò»ØÄꤹ¤ë¤È¡¢-mpower ¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤ê¡¢-mpowerpc ¥ª¥×¥·¥ç¥ó¤¬Ìµ¸ú¤Ë¤Ê¤ë¡£-mcpu=601 ¤ò»ØÄꤹ¤ë¤È¡¢-mpower ¤È -mpowerpc ¤ÎξÊý¤¬Í­¸ú¤Ë¤Ê¤ë¡£-mcpu=602¡¢-mcpu=603, -mcpu=603e¡¢-mcpu=604¡¢-mcpu=604e, -mcpu=620¡¢-mcpu=403¡¢-mcpu=505¡¢-mcpu=801, -mcpu=821¡¢-mcpu=823¡¢-mcpu=860¡¢-mcpu=powerpc ¤Î¤É¤ì¤«¤ò»ØÄꤹ¤ë¤È¡¢-mpowerpc ¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤·¡¢-mpower ¥ª¥×¥·¥ç¥ó¤ò̵¸ú¤Ë¤¹¤ë¡£Á´¤¯Æ±Íͤˡ¢-mcpu=403¡¢-mcpu=505¡¢-mcpu=821¡¢-mcpu=860¡¢-mcpu=powerpc ¤ò»ØÄꤹ¤ë¤È¡¢-mpowerpc ¤òÍ­¸ú¤Ë¤·¡¢-mpower ¤ò̵¸ú¤Ë¤¹¤ë¡£-mcpu=common ¤Ï¡¢-mpower ¤È -mpowerpc ¤ÎξÊý¤ò̵¸ú¤Ë¤¹¤ë¡£

AIX ¥Ð¡¼¥¸¥ç¥ó 4 °Ê¹ß¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç -mcpu=common ¤òÁªÂò¤·¡¢¥³¡¼¥É¤¬RS/6000 ¤È PowerPC °ì²¤ÎÁ´¥á¥ó¥Ð¤Çưºî¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤½¤Î¾ì¹ç¡¢GCC ¤ÏξÊý¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¶¦Ä̤Υµ¥Ö¥»¥Ã¥È¤Ë¡¢´ö¤Ä¤«¤ÎÆÃÊÌ¤Ê AIX ¶¦Ḁ̈⡼¥É¸Æ¤Ó½Ð¤·¤ò²Ã¤¨¤¿¤â¤Î¤À¤±¤ò»È¤¤¡¢MQ ¥ì¥¸¥¹¥¿¤Ï»È¤ï¤Ê¤¤¡£GCC ¤Ï¡¢¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÎºÝ¤Ë¤ÏÈÆÍÑ¤Î¥×¥í¥»¥Ã¥µ¥â¥Ç¥ë¤òÁÛÄꤹ¤ë¡£

-mcpu=rios1¡¢-mcpu=rios2¡¢-mcpu=rsc¡¢-mcpu=power¡¢-mcpu=power2 ¤Î¤É¤ì¤«¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤â¡¢new-mnemonics ¥ª¥×¥·¥ç¥ó¤ò̵¸ú¤Ë¤¹¤ë¡£-mcpu=601¡¢-mcpu=602¡¢-mcpu=603¡¢-mcpu=603e¡¢-mcpu=604¡¢620¡¢403¡¢-mcpu=powerpc ¤Î¤É¤ì¤«¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤â¡¢new-mnemonics ¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¡£

-mcpu=403¡¢-mcpu=821¡¢-mcpu=860 ¤Î¤É¤ì¤«¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤â -msoft-float ¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¡£

-mtune=cpu_type
Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥Ñ¥é¥á¡¼¥¿¤òµ¡¼ï cpu_type ÍѤËÀßÄꤹ¤ë¡£¤·¤«¤·¡¢¥¢¡¼¥­¥Æ¥¯¥Á¥ã·¿¡¢¥ì¥¸¥¹¥¿»ÈÍÑË¡¡¢¥Ë¡¼¥â¥Ë¥Ã¥¯¤ÎÁªÂò¤È¤¤¤Ã¤¿¡¢ -mcpu=cpu_type ¤¬¤ä¤ëÀßÄê¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡£cpu_type ¤ÎÃͤȤ·¤Æ¤Ï¡¢-mcpu=cpu_type ¤Ë»È¤Ã¤¿¤Î¤ÈƱ¤¸¤â¤Î¤ò¡¢-mtune=cpu_type ¤ËÂФ·¤Æ»È¤¦¡£-mtune=cpu_type ¥ª¥×¥·¥ç¥ó¤Ï¡¢-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤷ¤¿¤â¤Î¤ò¡¢Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥Ñ¥é¥á¡¼¥¿¤Ç¾å½ñ¤­¤¹¤ë¡£
-mfull-toc
-mno-fp-in-toc
-mno-sum-in-toc
-mminimal-toc
TOC(Table Of Contents) ¤ÎÀ¸À®¤Î»ÅÊý¤òÊѤ¨¤ë¡£TOC ¤Ï³Æ¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ëËè¤Ëºî¤é¤ì¤ë¡£-mfull-toc ¥ª¥×¥·¥ç¥ó¤¬¥Ç¥Õ¥©¥ë¥È¤ÇÁª¤Ð¤ì¤Æ¤¤¤ë¡£¤½¤Î¾ì¹ç¡¢GCC ¤Ï¡¢¥×¥í¥°¥é¥àÆâ¤Î°ì°ÕŪ¤Ç¼«Æ°ÊÑ¿ô¤Ç¤Ê¤¤ÊÑ¿ô¤Î»²¾È°ì¤ÄËè¤Ë¡¢¾¯¤Ê¤¯¤È¤â°ì¤Ä¤ÎTOC ¥¨¥ó¥È¥ê¤ò³ä¤êÅö¤Æ¤ë¡£GCC ¤Ï¡¢ÉâÆ°¾®¿ôÅÀÄê¿ô¤â TOC ¤ËÃÖ¤¯¡£¤À¤¬¡¢TOC ¤ËÆþ¤ì¤é¤ì¤ë¥¨¥ó¥È¥ê¿ô¤Ï¡¢16,384 ¤·¤«¤Ê¤¤¡£

¥ê¥ó¥«¤¬¡¢ÍøÍѲÄǽ¤Ê TOC ¶õ´Ö¤¬°î¤ì¤¿¤È¤¤¤¦¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¤¿¾ì¹ç¤Ï¡¢TOC ¤Î»ÈÍÑÎ̤ò -mno-fp-in-toc ¥ª¥×¥·¥ç¥ó¤ä-mno-sum-in-toc ¥ª¥×¥·¥ç¥ó¤Ç¸º¤é¤¹¤³¤È¤¬¤Ç¤­¤ë¡£-mno-fp-in-toc ¤ò»ØÄꤹ¤ë¤È¡¢ÉâÆ°¾®¿ôÅÀÄê¿ô¤ò TOC ¤ËÃÖ¤¯¤Î¤ò»ß¤á¤ë¡£-mno-sum-in-toc ¤ò»ØÄꤹ¤ë¤È¡¢¤¢¤ë¥¢¥É¥ì¥¹¤È¤¢¤ëÄê¿ô¤ÎϤò TOC ¤ËÃÖ¤¯ÊѤï¤ê¤Ë¡¢¼Â¹Ô»þ¤Ë¤½¤ÎϤò·×»»¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ÎÆó¤Ä¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¤É¤Á¤é¤«»ØÄꤷ¤Æ¤âÎɤ¤¤·¡¢Î¾Êý»ØÄꤷ¤Æ¤âÎɤ¤¡£¤É¤Á¤é¤â¡¢TOC ¶õ´Ö¤òÊݸ¤¹¤ë¤³¤È¤ÎÂå½þ¤È¤·¤Æ¡¢¤Û¤ó¤Î¤Á¤ç¤Ã¤È¤À¤±¡¢¥³¡¼¥É¤¬ÃÙ¤¯¡¢Â礭¤¯¤Ê¤ë¡£

ξÊý»ØÄꤷ¤Æ¤â¤Þ¤À TOC ¤¬Â­¤ê¤Ê¤¤¤È¤¤¤¦¾ì¹ç¤Ï¡¢Âå¤ï¤ê¤Ë-mminimal-toc ¤ò»ØÄꤹ¤ë¤³¤È¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï¡¢³Æ¥Õ¥¡¥¤¥ë¤Ë°ì¤Ä¤·¤« TOC ¥¨¥ó¥È¥ê¤òºî¤é¤Ê¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ÃÙ¤¯¡¢Â礭¤Ê¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤¬¡¢TOC ¶õ´Ö¤ÏÈó¾ï¤Ë¤ï¤º¤«¤·¤«»È¤ï¤Ê¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤Î¤Ï¡¢¤¢¤Þ¤êÉÑÈˤ˼¹Ԥµ¤ì¤Ê¤¤¥³¡¼¥É¤·¤«Æþ¤Ã¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¤Ë¸Â¤ë¤Î¤¬Îɤ¤¤À¤í¤¦¡£

-maix64
-maix32
AIX ¤Î 64 ¥Ó¥Ã¥È ABI ¤È¸Æ½Ð¤·µ¬Ìó¤òÍ­¸ú¤Ë¤¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢64¥Ó¥Ã¥È¥Ý¥¤¥ó¥¿¡¢64¥Ó¥Ã¥È long ·¿¡¢¤½¤ì¤Ë¤½¤ì¤é¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤Î¤ËɬÍפʥ¤¥ó¥Õ¥é¥¹¥È¥é¥¯¥Á¥ã¤¬Í­¸ú¤Ë¤Ê¤ë¡£-maix64 ¤ò»ØÄꤹ¤ë¤È¡¢-mpwoerpc64 ¤È -mpowerpc ¤â°Å¤Ë»ØÄꤵ¤ì¤ë¡£°ìÊý¡¢-maix32 ¤ò»ØÄꤹ¤ë¤È 64¥Ó¥Ã¥È ABI ¤ò̵¸ú¤Ë¤·¡¢°Å¤Ë -mno-powerpc64 ¤ò»ØÄꤹ¤ë¡£GCC ¤Î¥Ç¥Õ¥©¥ë¥È¤Ï-maix32 ¤Ç¤¢¤ë¡£
-mxl-call
-mno-xl-call
AIX ¤Ç¡¢¥×¥í¥È¥¿¥¤¥×ÉÕ¤­¤Î´Ø¿ô¤ËÂФ¹¤ëÉâÆ°¾®¿ôÅÀ°ú¿ô¤ò¡¢°ú¿ôÍÑ FPR ¤Ë²Ã¤¨¤Æ¡¢¥ì¥¸¥¹¥¿¥»¡¼¥ÖÎΰè(register save area, RSA) ¤ò±Û¤¨¤Æ¥¹¥¿¥Ã¥¯¤ËÅϤµ¤ì¤ë¡£AIX ¤Î¸Æ½Ð¤·µ¬Ìó¤Ï¡¢°ú¿ô¤Î¥¢¥É¥ì¥¹¤ò¤È¤ê¡¢Àë¸À¤µ¤ì¤¿¤è¤ê¤â¾¯¤Ê¤¤°ú¿ô¤·¤«ÅϤµ¤Ê¤¤´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¡¢K&R ¤ÎÛ£Ëæ¤Ê¾ì¹ç¤ò°·¤¦¤è¤¦¤Ë³ÈÄ¥¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ºÇ½é¤Ï¥É¥­¥å¥á¥ó¥È¤Ë¤½¤Îµ­½Ò¤¬¤Ê¤«¤Ã¤¿¡£AIX XL ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢RSA ¤Ë¼ý¤Þ¤é¤Ê¤¤ÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ï¡¢ºÇŬ²½¤Ê¤·¤Ç¥µ¥Ö¥ë¡¼¥Á¥ó¤¬ºÇŬ²½¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¤È¤­¤Ï¡¢¥¹¥¿¥Ã¥¯¤«¤é¥¢¥¯¥»¥¹¤¹¤ë¡£ÉâÆ°¾®¿ôÅÀ°ú¿ô¤ò¾ï¤Ë¥¹¥¿¥Ã¥¯¤Ë³ÊǼ¤¹¤ë¤Î¤Ï¸úΨ¤¬°­¤¤¤·¡¢ÌÇ¿¤ËɬÍפˤʤé¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤ÏÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£É¬Íפˤʤë¤Î¤Ï¡¢AIX XL ¥³¥ó¥Ñ¥¤¥é¤ÇºÇŬ²½¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥µ¥Ö¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤À¤±¤Ç¤¢¤ë¡£
-mthreads
AIX Threads ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£pthreads ¤ò»È¤Ã¤Æ½ñ¤«¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¡¢ÆÃÊ̤ʥ饤¥Ö¥é¥ê¤È¥¹¥¿¡¼¥È¥¢¥Ã¥×¥³¡¼¥É¤Ë¥ê¥ó¥¯¤·¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¼Â¹Ô¤ò²Äǽ¤Ë¤¹¤ë¡£
-mpe
IBM RS/6000 SP ¤Î Parallel Environment (PE) ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£¥á¥Ã¥»¡¼¥¸¥Ñ¥Ã¥·¥ó¥°¤ò»È¤¦¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢ÆÃÊ̤ʥ¹¥¿¡¼¥È¥¢¥Ã¥×¥³¡¼¥É¤È¥ê¥ó¥¯¤·¤Æ¡¢¤½¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Àµ¤·¤¯Æ°ºî¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£¥·¥¹¥Æ¥à¤Ë¤Ï PE ¤¬É¸½à¤Î°ÌÃÖ(/usr/lpp/ppe.poe/)¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£É¸½à¤Î°ÌÃ֤ˤʤ¤¾ì¹ç¤Ï¡¢-specs= ¥ª¥×¥·¥ç¥ó¤ÇŬÀڤʥǥ£¥ì¥¯¥È¥ê°ÌÃÖ¤ò»ØÄꤹ¤ë¤è¤¦¤Ë specs ¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ëɬÍפ¬¤¢¤ë¡£Parallel Environment ¤Ï¥¹¥ì¥Ã¥É¤ò¥µ¥Ý¡¼¥È»ØÄê°Ì¤Ê¤Î¤Ç¡¢-mpe ¥ª¥×¥·¥ç¥ó¤È -mthreads ¥ª¥×¥·¥ç¥ó¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£
-msoft-float
-mhard-float
ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¥»¥Ã¥È¤ò»È¤ï¤Ê¤¤(»È¤¦)¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£-msoft-float ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¥½¥Õ¥È¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¥ê¥ó¥¯»þ¤Ë GCC ¤ËÅϤµ¤ì¤ë¡£
-mmultiple
-mno-multiple
Ê£¿ô¸ì¤Î¥í¡¼¥ÉÌ¿Îá¤È¥¹¥È¥¢Ì¿Îá¤ò»È¤¦(»È¤ï¤Ê¤¤)¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤é¤ÎÌ¿Îá¤Ï¡¢POWER ¥·¥¹¥Æ¥à¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÀ¸À®¤µ¤ì¡¢PowerPC ¥·¥¹¥Æ¥à¤Ç¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤ò»ÈÍѤ·¤Æ¤¤¤ë PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï -mmultiple ¤ò»È¤ï¤Ê¤¤¤³¤È¡£¤³¤ì¤é¤ÎÌ¿Îá¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£Îã³°¤Ï PPC740 ¤È PPC750 ¤Ç¡¢¤³¤ì¤é¤ÎÌ¿Îá¤ò¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤Ç»È¤¦¤³¤È¤òµö¤·¤Æ¤¤¤ë¡£
-mstring
-mno-string
¥í¡¼¥É¡¦¥¹¥È¥ê¥ó¥°Ì¿Îá¤È¥¹¥È¥¢¡¦¥¹¥È¥ê¥ó¥°Ì¿Îá¤ò»È¤Ã¤Æ¡¢Ê£¿ô¥ì¥¸¥¹¥¿¤ò¥»¡¼¥Ö¤·¡¢¾®¤µ¤Ê¥Ö¥í¥Ã¥¯°Üư¤ò¹Ô¤Ê¤¦¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤é¤ÎÌ¿Îá¤Ï¡¢POWER ¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÀ¸À®¤µ¤ì¡¢PowerPC ¤Î¥·¥¹¥Æ¥à¤Ç¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£¥ê¥È¥ë¡¦¥¨¥ó¥Ç¥£¥¢¥ó¤ÎPowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï -mstring ¥ª¥×¥·¥ç¥ó¤ò»È¤ï¤Ê¤¤¤³¤È¡£¤³¤ì¤é¤ÎÌ¿Îá¤Ï¡¢¥ê¥È¥ë¡¦¥¨¥ó¥Ç¥£¥¢¥ó¡¦¥â¡¼¥É¤Î¥×¥í¥»¥Ã¥µ¤Ç¤Ïưºî¤·¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£Îã³°¤Ï PPC740 ¤È PPC750 ¤Ç¡¢¤³¤ì¤é¤ÎÌ¿Îá¤ò¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤Ç»È¤¦¤³¤È¤òµö¤·¤Æ¤¤¤ë¡£
-mupdate
-mno-update
¥Ù¡¼¥¹¥ì¥¸¥¹¥¿¤ò·×»»¸å¤Î¥á¥â¥ê¥¢¥É¥ì¥¹¤Ë¹¹¿·¤¹¤ë¥í¡¼¥ÉÌ¿Îᤢ¤ë¤¤¤Ï¥¹¥È¥¢Ì¿Îá¤ò»È¤¦(»È¤ï¤Ê¤¤)¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤é¤ÎÌ¿Îá¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÀ¸À®¤µ¤ì¤ë¡£-mno-upate ¤ò»ØÄꤹ¤ë¤È¡¢¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤¬¹¹¿·¤µ¤ì¤ë¤Î¤ÈľÁ°¤Î¥Õ¥ì¡¼¥à¤Î¥¢¥É¥ì¥¹¤¬¹¹¿·¤µ¤ì¤ë¤Î¤È´Ö¤Ë´Ö¤¬¤¢¤­¡¢³ä¤ê¹þ¤ß¤ä¥·¥°¥Ê¥ë¤ò±Û¤¨¤Æ¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤òÊ⤭²ó¤ë¥³¡¼¥É¤¬¤¢¤ë¤È¡¢Àµ¤·¤¯¤Ê¤¤¥Ç¡¼¥¿¤ò¼õ¤±¼è¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
-mfused-madd
-mno-fused-madd
ÉâÆ°¾®¿ôÅÀÀÑÏÂÌ¿Îá¤ò»È¤¦(»È¤ï¤Ê¤¤)¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤é¤ÎÌ¿Îá¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤ëÉâÆ°¾®¿ôÅÀ±é»»¤¬»È¤ï¤ì¤ë¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÀ¸À®¤µ¤ì¤ë¡£
-mno-bit-align
-mbit-align
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ò´Þ¤à¹½Â¤ÂΤ䶦ÍÑÂΤò¡¢¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î´ðËÜ·¿¤Ë¶¯À©Åª¤ËÀ°¹ç¤µ¤»¤ë(À°¹ç¤µ¤»¤Ê¤¤)

Î㤨¤Ð¡¢Ä¹¤µ¤¬ 1 ¤Î unsigned ¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É 8 ¸Ä¤À¤±¤·¤«´Þ¤Þ¤Ê¤¤¹½Â¤ÂΤϡ¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢4¥Ð¥¤¥È¶­³¦¤ËÀ°¹ç¤µ¤ì¡¢Â礭¤µ¤¬4¥Ð¥¤¥È¤Ë¤Ê¤ë¡£-mno-bit-align ¤ò»È¤¦¤È¡¢¤³¤Î¹½Â¤ÂÎ¤Ï 1 ¥Ð¥¤¥È¶­³¦¤ËÀ°¹ç¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¡¢Â礭¤µ¤â 1 ¥Ð¥¤¥È¤Ë¤Ê¤ë¡£

-mno-strict-align
-mstrict-align
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢À°¹ç¤Î¤È¤ì¤Æ¤¤¤Ê¤¤¥á¥â¥ê»²¾È¤¬¥·¥¹¥Æ¥à¤Ë¤è¤ê¼è¤ê°·¤ï¤ì¤ë¤È²¾Äꤷ¤Ê¤¤(²¾Äꤹ¤ë)¡£
-mrelocatable
-mno-relocatable
ÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢¼Â¹Ô»þ¤Ë°Û¤Ê¤ë¥¢¥É¥ì¥¹¤ËºÆÇÛÃÖ¤µ¤ì¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤³¤È¤òµö¤¹(µö¤µ¤Ê¤¤)¡£¥â¥¸¥å¡¼¥ë¤ò°ì¸Ä¤Ç¤â-mrelocatable ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤Ê¤é¡¢°ì½ï¤Ë¥ê¥ó¥¯¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ÏÁ´¤Æ -mrelocatable ¤« -mrelocatable-lib ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-mrelocatable-lib
-mno-relocatable-lib
ÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢¼Â¹Ô»þ¤Ë°Û¤Ê¤ë¥¢¥É¥ì¥¹¤ËºÆÇÛÃÖ¤µ¤ì¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤³¤È¤òµö¤¹(µö¤µ¤Ê¤¤)¡£-mrelocatable-lib ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥â¥¸¥å¡¼¥ë¤Ï¡¢-mrelocatable ¤ä -mrelocatable-lib ¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥â¥¸¥å¡¼¥ë¤Ç¤â¡¢-mrelocatable ÉÕ¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥â¥¸¥å¡¼¥ë¤Ç¤â¥ê¥ó¥¯²Äǽ¤Ç¤¢¤ë¡£
-mno-toc
-mtoc
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢¥ì¥¸¥¹¥¿ 2 ¤¬¡¢¥×¥í¥°¥é¥à¤Ç»È¤ï¤ì¤ë¥¢¥É¥ì¥¹·²¤ò»Ø¤¹¥°¥í¡¼¥Ð¥ëÎÎ°è¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤³¤È¤òÁÛÄꤷ¤Ê¤¤(ÁÛÄꤹ¤ë)¡£
-mlittle
-mlittle-endian
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤Ë¤¢¤ë¥×¥í¥»¥Ã¥µ¸þ¤±¤Ë¡¢¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£-mlittle-endian ¥ª¥×¥·¥ç¥ó¤Ï -mlittle ¥ª¥×¥·¥ç¥ó¤ÈƱ¤¸¤Ç¤¢¤ë¡£
-mbig
-mbig-endian
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤Ë¤¢¤ë¥×¥í¥»¥Ã¥µ¸þ¤±¤Ë¡¢¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£-mbig-endian ¥ª¥×¥·¥ç¥ó¤Ï -mbig ¥ª¥×¥·¥ç¥ó¤ÈƱ¤¸¤Ç¤¢¤ë¡£
-mcall-sysv
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¡ÖSystem V Application Binary Interface, PowerPC processor supplement¡×¤Î 1995ǯ3·îÈǥɥé¥Õ¥È¤Ë½¾¤Ã¤¿¸Æ¤Ó½Ð¤·µ¬Ìó¤ò»È¤Ã¤Æ¡¢¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£GCC ¤ò powerpc-*-eabiaix ¤Ç¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤·¤Ê¤¤¾ì¹ç¤Ï¡¢¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ë¡£
-mcall-sysv-eabi
-mcall-sysv ¤È -meabi ¤ÎξÊý¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£
-mcall-sysv-noeabi
-mcall-sysv ¤È -mno-eabi ¤ÎξÊý¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£
-mcall-aix
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢AIX ¤Ç»È¤ï¤ì¤Æ¤¤¤ë¸Æ¤Ó½Ð¤·µ¬Ìó¤ËÎà»÷¤Î¸Æ¤Ó½Ð¤·µ¬Ìó¤ò»È¤Ã¤Æ¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£GCC ¤ò powerpc-*-eabiaix ¤Ç¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤·¤¿¾ì¹ç¤Ï¡¢¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ë¡£
-mcall-solaris
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Solaris ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¸þ¤±¤Ë¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£
-mcall-linux
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Linux ¥Ù¡¼¥¹¤Î GNU ¥·¥¹¥Æ¥à¸þ¤±¤Ë¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£
-mprototype
-mno-prototype
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Á´¤Æ¤Î²ÄÊÑ¿ô°ú¿ô´Ø¿ô¤Ø¤Î¸Æ½Ð¤·¤Ï¡¢Àµ¤·¤¯¥×¥í¥È¥¿¥¤¥×Àë¸À¤µ¤ì¤Æ¤¤¤ë¤ÈÁÛÄꤹ¤ë¡£ÁÛÄꤷ¤Ê¤¤¾ì¹ç¤Ï¡¢GCC ¤Ï¡¢¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ê¤·¤Î¸Æ½Ð¤·Ëè¤Ë¤½¤ÎľÁ°¤ËÌ¿Îá¤ò°ì¸ÄÁÞÆþ¤·¤Æ¡¢´Ø¿ô¤¬²ÄÊÑ¿ô°ú¿ô¤ò¼è¤ë¾ì¹ç¡¢ÉâÆ°¾®¿ôÅÀÃͤ¬ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ÇÅϤµ¤ì¤¿¤«¤É¤¦¤«¤ò»Ø¼¨¤¹¤ë¤¿¤á¤Ë¡¢¾ò·ï¥³¡¼¥É¥ì¥¸¥¹¥¿(CR)¤Î¥Ó¥Ã¥È 6 ¤òΩ¤Æ¤ë¤«Íî¤È¤¹¤«¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£-mprototype ¤ò»ØÄꤹ¤ë¤È¡¢¥×¥í¥È¥¿¥¤¥×Àë¸À¤µ¤ì¤¿²ÄÊÑ¿ô°ú¿ô´Ø¿ô¤Ø¤Î¸Æ½Ð¤·¤Ç¤Î¤ß¡¢¥Ó¥Ã¥È 6 ¤òΩ¤Æ¤¿¤êÍî¤È¤·¤¿¤ê¤¹¤ë¡£
-msim
ÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢µ¯Æ°¥â¥¸¥å¡¼¥ë¤¬ sim-crt0.o ¤Ç¤¢¤ê¡¢É¸½à C ¥é¥¤¥Ö¥é¥ê¤Ï libsim.a ¤È libc.a ¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤹ¤ë¡£¤³¤ì¤Ï¡¢powerpc-*-eabisim ¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mmvme
ÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢µ¯Æ°¥â¥¸¥å¡¼¥ë¤¬ crt0.o ¤Ç¤¢¤ê¡¢É¸½à C ¥é¥¤¥Ö¥é¥ê¤Ï libmvmem.a ¤È libc.a ¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤹ¤ë¡£
-mads
ÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢µ¯Æ°¥â¥¸¥å¡¼¥ë¤¬ crt0.o ¤Ç¤¢¤ê¡¢É¸½à C ¥é¥¤¥Ö¥é¥ê¤Ï libads.a ¤È libc.a ¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤹ¤ë¡£
-myellowknife
ÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢µ¯Æ°¥â¥¸¥å¡¼¥ë¤¬ crt0.o ¤Ç¤¢¤ê¡¢É¸½à C ¥é¥¤¥Ö¥é¥ê¤Ï libyka.a ¤È libc.a ¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤹ¤ë¡£
-memb
ÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢ELF ¥Õ¥é¥°¥Ø¥Ã¥À¤Î PPC_EMB ¥Ó¥Ã¥È¤òΩ¤Æ¤ë¤³¤È¤Ç¡¢eabi ³ÈÄ¥ºÆÇÛÃÖ¾ðÊ󤬻Ȥï¤ì¤ë¤³¤È¤ò»Ø¼¨¤¹¤ë¡£
-meabi
-mno-eabi
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢ÁȤ߹þ¤ß¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥Ð¥¤¥Ê¥ê¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹(Embedded Applications Binary Interface (eabi)) ¤ò½å¼é¤¹¤ë(½å¼é¤·¤Ê¤¤)¡£eabi ¤Ï¡¢System V.4 ¤Î»ÅÍͤËÂФ¹¤ë°ì·²¤Î½¤Àµ¤Ç¤¢¤ë¡£-meabi ¤òÁª¤Ö¤È¡¢¥¹¥¿¥Ã¥¯¤Ï 8 ¥Ð¥¤¥È¶­³¦¤ËÀ°¹ç¤¬¹Ô¤Ê¤ï¤ì¡¢´Ø¿ô __eabi ¤¬ main ¤«¤é¸Æ¤Ó½Ð¤µ¤ì¡¢eabi ´Ä¶­¤ÎÀßÄ꤬¹Ô¤Ê¤ï¤ì¡¢¤µ¤é¤Ë -msdata ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤¿¾ì¹ç¡¢r2 ¤È r13 ¤ÎξÊý¤ò»È¤¤¡¢Æó¤Ä¤Î¾®¤µ¤Ê¥Ç¡¼¥¿Îΰè¤ò»Ø¤¹¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£-mno-eabi ¤òÁª¤Ö¤È¡¢¥¹¥¿¥Ã¥¯¤Ï 16 ¥Ð¥¤¥È¶­³¦¤ËÀ°¹ç¤¬¹Ô¤Ê¤ï¤ì¡¢main ¤«¤é½é´ü²½´Ø¿ô¤ò¸Æ¤Ó½Ð¤µ¤º¡¢-msdata ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤â¡¢r13 ¤À¤±¤¬»È¤ï¤ì¡¢¾®¤µ¤Ê¥Ç¡¼¥¿Îΰè¤ò°ì¸Ä¤·¤«»Ø¤µ¤Ê¤¤¡£-meabi ¥ª¥×¥·¥ç¥ó¤Ï¡¢GCC ¤ò powerpc*-*-eabi* ¥ª¥×¥·¥ç¥ó¤Î¤É¤ì¤«°ì¤Ä¤ò»È¤Ã¤Æ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤·¤¿¾ì¹ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤ë¡£
-msdata=eabi
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¾®¤µ¤Ê½é´ü²½ºÑ¤ß¤Çconst ¤Î¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÈÀÅŪ¥Ç¡¼¥¿¤ò¥»¥¯¥·¥ç¥ó .sdata2 ¤ËÃÖ¤¯¡£.sdata2 ¥»¥¯¥·¥ç¥ó¤Ï¥ì¥¸¥¹¥¿ r2 ¤¬»Ø¤¹¡£¾®¤µ¤Ê½é´ü²½ºÑ¤ß¤ÇÈó const ¤Î¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÈÀÅŪ¥Ç¡¼¥¿¤ò¥»¥¯¥·¥ç¥ó .sdata ¤ËÃÖ¤¯¡£.sdata ¥»¥¯¥·¥ç¥ó¤Ï¥ì¥¸¥¹¥¿ r13 ¤¬»Ø¤¹¡£¾®¤µ¤ÊÈó½é´ü²½¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÈÀÅŪ¥Ç¡¼¥¿¤ò¥»¥¯¥·¥ç¥ó .sbss ¥»¥¯¥·¥ç¥ó¤ËÃÖ¤¯¡£.sbss ¤Ï¡¢¥»¥¯¥·¥ç¥ó .sdata ¤Îľ¸å¤ËÃÖ¤«¤ì¤ë¡£¥ª¥×¥·¥ç¥ó -msdata=eabi ¤Ï¡¢-mrelocatable ¥ª¥×¥·¥ç¥ó¤È¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£-msdata=eabi ¤Ï¤Þ¤¿¡¢-memb ¥ª¥×¥·¥ç¥ó¤âÀßÄꤹ¤ë¡£
-msdata=sysv
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¾®¤µ¤Ê¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÈÀÅŪ¥Ç¡¼¥¿¤ò¥»¥¯¥·¥ç¥ó .sdata ¤ËÃÖ¤¯¡£.sdata ¥»¥¯¥·¥ç¥ó¤Ï¥ì¥¸¥¹¥¿ r13 ¤¬»Ø¤¹¡£¾®¤µ¤ÊÈó½é´ü²½¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÈÀÅŪ¥Ç¡¼¥¿¤ò¥»¥¯¥·¥ç¥ó .sbss ¤ËÃÖ¤¯¡£.sbss ¤Ï¡¢¥»¥¯¥·¥ç¥ó .sdata ¤Îľ¸å¤ËÃÖ¤«¤ì¤ë¡£¥ª¥×¥·¥ç¥ó -msdata=sysv ¤Ï¡¢-mrelocatable ¥ª¥×¥·¥ç¥ó¤È¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£
-msdata=default
-msdata
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¡¢-meabi ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢-msdata=eabi ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ë¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£-meabi ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢-msdata=sysv ¤ÈƱ¤¸¤è¤¦¤Ë¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£
-msdata-data
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¾®¤µ¤Ê¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÈÀÅŪ¥Ç¡¼¥¿¤ò¥»¥¯¥·¥ç¥ó .sdata ¤ËÃÖ¤­¡¢¾®¤µ¤ÊÈó½é´ü²½¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÈÀÅŪ¥Ç¡¼¥¿¤ò¥»¥¯¥·¥ç¥ó .sbss ¤ËÃÖ¤¯¡£¤·¤«¤·¡¢¤³¤Î¾®¤µ¤Ê¥Ç¡¼¥¿¤ò»²¾È¤¹¤ë¤Î¤Ë¥ì¥¸¥¹¥¿ r13 ¤ò»È¤ï¤Ê¤¤¡£¤³¤ì¤Ï¡¢Â¾¤Î -msdata ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Ê¤¤¸Â¤ê¡¢¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ë¡£
-msdata=none
-mno-sdata
ÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢Á´¤Æ¤Î½é´ü²½ºÑ¤ß¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÈÀÅŪ¥Ç¡¼¥¿¤ò¥»¥¯¥·¥ç¥ó .data ¤ËÃÖ¤­¡¢Á´¤Æ¤ÎÈó½é´ü²½¥Ç¡¼¥¿¤ò¥»¥¯¥·¥ç¥ó .bss ¤ËÃÖ¤¯¡£
-G num
ÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢num ¥Ð¥¤¥È°Ê²¼¤Î¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÈÀÅŪ¥Ç¡¼¥¿¤ò¡¢Ä̾ï¤Î data ¤¢¤ë¤¤¤Ï bss ¥»¥¯¥·¥ç¥ó¤Ç¤Ï¤Ê¤¯¡¢¾®¤µ¤Êdata ¤¢¤ë¤¤¤Ï¾®¤µ¤Ê bss ¥»¥¯¥·¥ç¥ó¤ËÃÖ¤¯¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢num ¤Ï8 ¤Ç¤¢¤ë¡£-G num ¤Ï¡¢¥ê¥ó¥«¤Ë¤âÅϤµ¤ì¤ë¡£Á´¤Æ¤Î¥â¥¸¥å¡¼¥ë¤òƱ¤¸ÃͤΠ-G num ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£
-mregnames
-mno-regnames
System V.4 ¤ÈÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥¢¥»¥ó¥Ö¥ê¸À¸ì½ÐÎϤǵ­¹æ·Á¼°¤ò»È¤Ã¤¿¥ì¥¸¥¹¥¿Ì¾¤ò½ÐÎϤ¹¤ë(½ÐÎϤ·¤Ê¤¤)¡£


Node:RT Options, Next:, Previous:RS/6000 and PowerPC Options, Up:Submodel Options

IBM RT ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ IBM RT PC ÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-min-line-mul
À°¿ô¾è»»¤Ë¤¿¤¤¤·¤Æ¡¢¥¤¥ó¥é¥¤¥óŸ³«¤·¤¿¥³¡¼¥ÉÎó¤ò»È¤¦¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mcall-lib-mul
À°¿ô¤Î¾è»»¤Ë¤¿¤¤¤·¤Æ lmul$$ ¤ò¸Æ¤Ó½Ð¤¹¡£
-mfull-fp-blocks
IBM ¿ä¾©¤ÎºÇ¾¯Î̤εͤá¤â¤Î¥¹¥Ú¡¼¥¹¤ò¼è¤ê¹þ¤ó¤À¡¢´°Á´¤ÊÂ礭¤µ¤ÎÉâÆ°¾®¿ôÅÀ¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mminimum-fp-blocks
ÉâÆ°¾®¿ôÅÀ¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤Ë;ʬ¤ÊµÍ¤á¤â¤Î¤Î¥¹¥Ú¡¼¥¹¤ò¼è¤ê¹þ¤Þ¤Ê¤¤¡£¤³¤Î·ë²Ì¡¢¥³¡¼¥É¤Ï¾®¤µ¤¯¤Ê¤ë¤¬¼Â¹Ô¤ÏÃÙ¤¯¤Ê¤ë¡£µÍ¤á¤â¤Î¤Î¥¹¥Ú¡¼¥¹¤òưŪ¤Ë³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
-mfp-arg-in-fpregs
IBM ¤Î¸Æ½Ð¤·µ¬Ìó¤È¸ß´¹À­¤Î¤Ê¤¤¸Æ½Ð¤·µ¬Ìó¤ò»È¤¦¡£¤³¤Îµ¬Ìó¤Ç¤Ï¡¢ÉâÆ°¾®¿ôÅÀ°ú¿ô¤ÏÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ÇÅϤµ¤ì¤ë¡£varargs.h ¤È stdargs.h ¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¡¢ÉâÆ°¾®¿ôÅÀ±é»»¤È°ì½ï¤Ë»È¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
-mfp-arg-in-gregs
ÉâÆ°¾®¿ôÅÀ°ú¿ô¤ËÂФ·¡¢Ä̾ï¤Î¸Æ½Ð¤·µ¬Ìó¤ò»È¤¦¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mhc-struct-return
°ì¸ì¤è¤êÂ礭¤Ê¹½Â¤ÂΤò¥ì¥¸¥¹¥¿¤Ç¤Ï¤Ê¤¯¡¢¥á¥â¥ê¤ËÆþ¤ì¤ÆÊÖ¤¹¡£¤³¤ì¤Ï MetaWare HighC(hc) ¥³¥ó¥Ñ¥¤¥é¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë¤¢¤ë¡£Portable C Compiler(pcc) ¤È¤Î¸ß´¹À­¤ò¼è¤ë¤Ë¤Ï-fpcc-struct-return ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤³¤È¡£
-mnohc-struct-return
°ì¸ì¤ò±Û¤¨¤ë¤¤¤¯¤Ä¤«¤Î¹½Â¤ÂΤò¡¢¥ì¥¸¥¹¥¿¤ÇÅϤ·¤¿¤Û¤¦¤¬Îɤ¤¾ì¹ç¤Ï¥ì¥¸¥¹¥¿¤ÇÅϤ¹¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£IBM Ä󶡤Υ³¥ó¥Ñ¥¤¥é¤È¤Î¸ß´¹À­¤ò¼è¤ë¤¿¤á¤Ë¤Ï¡¢-fpcc-struct-return ¥ª¥×¥·¥ç¥ó¤«-mhc-struct-return ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¡£


Node:MIPS Options, Next:, Previous:RT Options, Up:Submodel Options

MIPS ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬¡¢MIPS ·Ï¥³¥ó¥Ô¥å¡¼¥¿ÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mcpu=cpu type
Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÎºÝ¤Îµ¡¼ï¤Î¥Ç¥Õ¥©¥ë¥È¤ò cpu type ¤ÈÁÛÄꤹ¤ë¡£cpu type ¤Ï¡¢r2000¡¢r3000¡¢r3900¡¢r4000¡¢r4100¡¢r4300¡¢r4400¡¢r4600¡¢r4650¡¢r5000¡¢r6000¡¢r8000¡¢orion ¤Î¤É¤ì¤«¤Ç¤¢¤ë¡£¤µ¤é¤Ë¡¢r2000¡¢r3000¡¢r4000¡¢r5000¡¢r6000 ¤Ï¡¢r2k(¤¢¤ë¤¤¤Ï r2K)¡¢r3k Åù¤Î¤è¤¦¤Ë¾Êά¤Ç¤­¤ë¡£¤¢¤ëÆÃÄê¤Î cpu type ¤òÁª¤Ö¤È¤½¤ÎÆÃÄê¤Î¥Á¥Ã¥×¤ËŬ¤·¤¿¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò¹Ô¤Ê¤¦°ìÊý¤Ç¡¢-mipsX ¤ä -mabi ¤ò»ØÄꤷ¤Ê¤¤¸Â¤ê¡¢MIPS ISA(Instruction Set Architecture¡¢Ì¿Î᥻¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã)¤Î¥ì¥Ù¥ë 1 ¤Ë¹ç¤ï¤Ê¤¤¥³¡¼¥É¤Ï²¿¤âÀ¸À®¤·¤Ê¤¤¡£
-mips1
MIPS ISA ¤Î¥ì¥Ù¥ë 1 ¤ÎÌ¿Îá¤òȯ¹Ô¤¹¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£r3000 ¤¬¡¢¤³¤Î ISA ¥ì¥Ù¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î CPU ¥¿¥¤¥×¤Ç¤¢¤ë¡£
-mips2
MIPS ISA ¤Î¥ì¥Ù¥ë 2 ¤ÎÌ¿Îá(branch likely, square root Ì¿Îá)¤òȯ¹Ô¤¹¤ë¡£r6000 ¤¬¡¢¤³¤Î ISA ¥ì¥Ù¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î CPU ¥¿¥¤¥×¤Ç¤¢¤ë¡£
-mips3
MIPS ISA ¤Î¥ì¥Ù¥ë 3 ¤ÎÌ¿Îá(64¥Ó¥Ã¥ÈÌ¿Îá)¤òȯ¹Ô¤¹¤ë¡£r4000 ¤¬¡¢¤³¤Î ISA ¥ì¥Ù¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î CPU ¥¿¥¤¥×¤Ç¤¢¤ë¡£
-mips4
MIPS ISA ¤Î¥ì¥Ù¥ë 4 ¤ÎÌ¿Îá(¾ò·ïÉÕ¤­ move Ì¿Îá¡¢¥×¥ê¥Õ¥§¥Ã¥ÁÌ¿Îá¡¢¶¯²½¤µ¤ì¤¿ FPU Ì¿Îá)¤òȯ¹Ô¤¹¤ë¡£r8000 ¤Ï¡¢¤³¤Î ISA ¥ì¥Ù¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î cpu type ¤Ç¤¢¤ë¡£
-mfp32
32¸Ä¤Î32¥Ó¥Ã¥ÈÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤹ¤ë¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mfp64
32¸Ä¤Î64¥Ó¥Ã¥ÈÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤹ¤ë¡£¤³¤ì¤Ï¡¢-mips3 ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mgp32
32¸Ä¤Î32¥Ó¥Ã¥ÈÈÆÍѥ쥸¥¹¥¿¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤹ¤ë¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mgp64
32¸Ä¤Î64¥Ó¥Ã¥ÈÈÆÍѥ쥸¥¹¥¿¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤹ¤ë¡£¤³¤ì¤Ï¡¢-mips3 ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mint64
long ·¿¤È int ·¿¤ò¶¯À©Åª¤Ë 64 ¥Ó¥Ã¥ÈÉý¤Ë¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤È¥Ý¥¤¥ó¥¿¤ÎÂ礭¤µ¤Ë¤Ä¤¤¤Æ¤Ï-mlong32 ¤ò»²¾È¤Î¤³¤È¡£
-mlong64
long ·¿¤ò¶¯À©Åª¤Ë 64 ¥Ó¥Ã¥È¤Ë¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤È¥Ý¥¤¥ó¥¿¤ÎÂ礭¤µ¤Ë¤Ä¤¤¤Æ¤Ï-mlong32 ¤ò»²¾È¤Î¤³¤È¡£
-mlong32
long ·¿¡¢int ·¿¡¢¥Ý¥¤¥ó¥¿·¿¤ò¶¯À©Åª¤Ë 32 ¥Ó¥Ã¥ÈÉý¤Ë¤¹¤ë¡£

-mlong32¡¢-mlong64¡¢-mint64 ¤Î¤É¤ì¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢int¡¢long¡¢¥Ý¥¤¥ó¥¿¤Î¥µ¥¤¥º¤Ï¡¢ABI ¤ÈÁªÂò¤µ¤ì¤¿ ISA ¤Ë°Í¸¤¹¤ë¡£-mabi=64 ¤Î¾ì¹ç¡¢int ¤Ï 32 ¥Ó¥Ã¥ÈÉý¤Ç long ¤Ï 64 ¥Ó¥Ã¥ÈÉý¤Ç¤¢¤ë¡£-mabi=eabi ¤Î¾ì¹ç¡¢-mips1 ¤« -mips2 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢int ¤È long ¤Ï 32 ¥Ó¥Ã¥ÈÉý¤Ë¤Ê¤ë¡£-mabi=eabi ¤Î¾ì¹ç¡¢¤½¤ì¤è¤ê¹â¤¤ ISA ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢int ¤Ï 32 ¥Ó¥Ã¥ÈÉý¤Ç¡¢long ¤¬ 64 ¥Ó¥Ã¥ÈÉý¤Ë¤Ê¤ë¡£¥Ý¥¤¥ó¥¿·¿¤ÎÉý¤Ï¡¢long ¤ÎÉý¤ÈÈÆÍѥ쥸¥¹¥¿¤ÎÉý¤Î¾®¤µ¤¤¤Û¤¦¤Ë¤Ê¤ë(¤³¤ì¤Ï¡¢ISA ¤Ë°Í¸¤¹¤ë)¡£

-mabi=32
-mabi=o64
-mabi=n32
-mabi=64
-mabi=eabi
»ØÄꤵ¤ì¤¿ ABI ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤ÎÌ¿Îá¥ì¥Ù¥ë¤Ï¡¢32 ¤ËÂФ·¤Æ¤Ï -mips1 ¤Ç¤¢¤ê¡¢n32 ¤ËÂФ·¤Æ¤Ï-mips3¡¢¤½¤Î¾¤ËÂФ·¤Æ¤Ï -mips4 ¤Ç¤¢¤ë¡£µÕ¤Ë¡¢-mips1 ¤« -mips2 ¤ò»ØÄꤹ¤ë¤È¥Ç¥Õ¥©¥ë¥È¤Î ABI ¤Ï 32 ¤Ë¤Ê¤ê¡¢¤½¤ì°Ê³°¤Ï 64 ¤Ë¤Ê¤ë¡£
-mmips-as
MIPS ¥¢¥»¥ó¥Ö¥éÍѤΥ³¡¼¥É¤òÀ¸À®¤·¡¢Ä̾ï¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÄɲ乤뤿¤á¤Ëmips-tfile ¤òµ¯Æ°¤¹¤ë¡£¤³¤ì¤Ï¡¢OSF/rose ¥ª¥Ö¥¸¥§¥¯¥È·Á¼°¤ò»È¤Ã¤Æ¤¤¤ë¡¢OSF/1 »²¾È¥×¥é¥Ã¥È¥Õ¥©¡¼¥à°Ê³°¤ÎÁ´¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£-gstabs ¤« -gstabs+ ¤Î¤É¤Á¤é¤«¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢mips-tfile ¥×¥í¥°¥é¥à¤¬¡¢MIPS ECOFF Æâ¤Ë stabs ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÊñ¤ß¹þ¤à¡£
-mgas
GNU ¥¢¥»¥ó¥Ö¥éÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢OSF/rose ¥ª¥Ö¥¸¥§¥¯¥È·Á¼°¤ò»È¤Ã¤Æ¤¤¤ë¡¢OSF/1 ¤Î»²¾È¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£¤Þ¤¿¡¢configure ¤Î¥ª¥×¥·¥ç¥ó --with-gnu-as ¤¬»ØÄꤵ¤ì¤¿¤È¤­¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤â¤¢¤ë¡£
-msplit-addresses
-mno-split-addresses
¥¢¥É¥ì¥¹Äê¿ô¤Î¾å°ÌÉô¤È²¼°ÌÉô¤òÊÌ¡¹¤Ë¥í¡¼¥É¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢gcc ¤¬¡¢¥¢¥É¥ì¥¹¤Î¾å°Ì¥Ó¥Ã¥È¤ò̵ÂÌ¤Ë¥í¡¼¥É¤·¤Ê¤¤¤è¤¦¤ËºÇŬ²½¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£¤³¤ÎºÇŬ²½¤Ë¤Ï¡¢GNU as ¤È GNU ld ¤¬É¬Íפˤʤ롣¤³¤ÎºÇŬ²½¤Ï¡¢GNU as ¤È GNU ld ¤¬É¸½à¤Î¥Ä¡¼¥ë¤Ç¤¢¤ë´ö¤Ä¤«¤ÎÁȤ߹þ¤ß¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤ë¡£
-mrnames
-mno-rnames
-mrnames ¤ò»ØÄꤹ¤ë¤È¡¢¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ¡¢¥Ï¡¼¥É¥¦¥§¥¢Ì¾¤ÎÂå¤ï¤ê¤Ë¡¢MIPS ¤Î¥½¥Õ¥È¥¦¥§¥¢Ì¾(Î㤨¤Ð¡¢$4 ¤ÎÂå¤ï¤ê¤Ë a0)¤ò»È¤Ã¤¿¥³¡¼¥É¤ò½ÐÎϤ¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥¢¥»¥ó¥Ö¥é¤ÏAlgorithmics ¤Î¥¢¥»¥ó¥Ö¥é¤À¤±¤Ç¤¢¤ë¡£
-mgpopt
-mno-gpopt
-mgpopt ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢Á´¤Æ¤Î¥Ç¡¼¥¿Àë¸À¤ò¡¢¥Æ¥­¥¹¥È¥»¥¯¥·¥ç¥ó¤ÎÌ¿ÎáÉôʬ¤ÎÁ°¤Ë½ñ¤­½Ð¤¹¡£¤³¤ì¤Ë¤è¤ê MIPS ¤Î¥¢¥»¥ó¥Ö¥é¤¬¾®¤µ¤¤¥°¥í¡¼¥Ð¥ë¤ª¤è¤ÓÀÅŪ¥Ç¡¼¥¿¹àÌܤËÂФ·¡¢Æó¸ì¤Ç¤Ï¤Ê¤¯¡¢°ì¸ì¤Ë¤è¤ë¥á¥â¥ê»²¾È¤òÀ¸À®¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£ºÇŬ²½¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤ë¡£
-mstats
-mno-stats
-mstats ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢È󥤥ó¥é¥¤¥ó´Ø¿ô¤¬½èÍý¤µ¤ì¤ëÅ٤ˡ¢É¸½à¥¨¥é¡¼½ÐÎϤ˰ì¹Ô½ÐÎϤ·¡¢¥×¥í¥°¥é¥à¤ÎÅý·×¾ðÊó(¥»¡¼¥Ö¤µ¤ì¤¿¥ì¥¸¥¹¥¿¿ô¡¢¥¹¥¿¥Ã¥¯¤ÎÂ礭¤µÅù)¤òɽ¼¨¤¹¤ë¡£
-mmemcpy
-mno-memcpy
-mmemcpy ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢Á´¤Æ¤Î¥Ö¥í¥Ã¥¯°Üư¤ËÂФ·¡¢¥¤¥ó¥é¥¤¥ó¥³¡¼¥É¤òÀ¸À®¤¹¤ëÂå¤ï¤ê¤Ë¡¢Å¬ÀÚ¤Êʸ»úÎó´Ø¿ô(memcpy ¤«bcopy)¤ò¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë¤¹¤ë¡£
-mmips-tfile
-mno-mips-tfile
-mno-mips-tfile ¤ò»ØÄꤹ¤ë¤È¡¢MIPS ¤Î¥¢¥»¥ó¥Ö¥é¤¬¥Ç¥Ð¥Ã¥°¾ðÊó¤òÄɲä·¤¿¸å¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ËÂФ·¡¢mips-tfile ¥×¥í¥°¥é¥à¤Ë¤è¤ë¸å½èÍý¤ò¹Ô¤Ê¤ï¤Ê¤¤¡£mips-tfile ¤ò¼Â¹Ô¤·¤Æ¤ª¤«¤Ê¤¤¤È¡¢¥Ç¥Ð¥Ã¥¬¤«¤é¥í¡¼¥«¥ëÊÑ¿ô¤Î¾ðÊ󤬰·¤¨¤Ê¤¯¤Ê¤ë¡£¤µ¤é¤Ë¡¢stage2 ¤È stage3 ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï¡¢¥¢¥»¥ó¥Ö¥é¤ËÅϤµ¤ì¤¿°ì»þ¥Õ¥¡¥¤¥ë̾¤¬¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ëÆâ¤ËËä¤á¹þ¤Þ¤ì¤¿·Á¤ÇÆþ¤Ã¤Æ¤¤¤ë¡£¤³¤Î¤¿¤á¡¢stage2 ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤È stage3 ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬Æ±¤¸¤Ë¤Ê¤ë¤³¤È¤Ï¤Ê¤¤¡£-mno-mips-tfile ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤Î¤Ï¡¢mips-tfile ¥×¥í¥°¥é¥à¤Ë¥Ð¥°¤¬¤¢¤ê¡¢¥³¥ó¥Ñ¥¤¥ë¤¬¹Ô¤¨¤Ê¤¤¾ì¹ç¤Ë¤À¤±¤Ë½Ñ´ï¤Ç¤¢¤ë¡£
-msoft-float
ÉâÆ°¾®¿ôÅÀÍѥ饤¥Ö¥é¥ê¸Æ¤Ó½Ð¤·¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£·Ù¹ð: ɬÍפȤʤë¥é¥¤¥Ö¥é¥ê¤Ï GCC ¤Î°ìÉô¤Ç¤Ï¤Ê¤¤¡£ÉáÄ̤Ϥ½¤Îµ¡¼ï¤ÎÄ̾ï¤Î C ¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤¬»È¤ï¤ì¤ë¤¬¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¤³¤ì¤ò¤½¤Î¤Þ¤Þ¹Ô¤Ê¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¡¢Å¬Àڤʥ饤¥Ö¥é¥ê´Ø¿ô¤ò¼«Ê¬¤ÇÍѰդ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-mhard-float
ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢GCC ¤Î¥½¡¼¥¹¤òÊѹ¹¤·¤Ê¤±¤ì¤Ð¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mabicalls
-mno-abicalls
°ÌÃÖÆÈΩ¥³¡¼¥ÉÍѤˡ¢System V.4 ÍѤΰܿ¢¤Ç»È¤Ã¤Æ¤¤¤ëµ¿»÷Ì¿Îá.abicalls¡¢.cpload¡¢.cprestore ¤òÀ¸À®¤¹¤ë(¤¢¤ë¤¤¤ÏÀ¸À®¤·¤Ê¤¤)¡£
-mlong-calls
-mno-long-calls
Á´¤Æ¤Î¸Æ½Ð¤·¤ò JALR Ì¿Îá¤Ç¹Ô¤¦¡£¤³¤Î¤¿¤á¤Ë¤Ï¡¢¸Æ½Ð¤·¤ÎÁ°¤Ë¡¢´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¥ì¥¸¥¹¥¿¤Ë¥í¡¼¥É¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢¤ë¤Î¤Ï¡¢¸½ºß¤Î 512 ¥á¥¬¥Ð¥¤¥È¤Î¥»¥°¥á¥ó¥È¤Î³°Â¦¤Î´Ø¿ô¤ò¡¢¥Ý¥¤¥ó¥¿·Ðͳ¤Ç¤Ê¤¯¸Æ¤Ó½Ð¤¹¾ì¹ç¤Ç¤¢¤ë¡£
-mhalf-pic
-mno-half-pic
³°Éô»²¾È¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¡¢¥Æ¥­¥¹¥È¥»¥¯¥·¥ç¥ó¤ËÃÖ¤¯¤Î¤Ç¤Ï¤Ê¤¯¡¢¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤ËÃÖ¤¤¤Æ¥í¡¼¥É¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£
-membedded-pic
-mno-embedded-pic
¤¤¤¯¤Ä¤«¤ÎÁȤ߹þ¤ß¥·¥¹¥Æ¥à¸þ¤±¤ËŬ¤·¤¿ PIC ¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£Á´¤Æ¤Î¸Æ½Ð¤·¤Ï PC ÁêÂÐ¥¢¥É¥ì¥¹¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¡¢Á´¤Æ¤Î¥Ç¡¼¥¿¤Î¥¢¥É¥ì¥¹¤Ï$gp ¥ì¥¸¥¹¥¿¤ò»È¤Ã¤Æ°·¤ï¤ì¤ë¡£¤³¤ì¤Ë¤Ï¡¢¤½¤Î¤¿¤á¤Îºî¶È¤Î¤Û¤È¤ó¤É¤ò¹Ô¤¦ GNU as ¤È GNU ld ¤¬É¬ÍפǤ¢¤ë¡£¤³¤ì¤Ï¡¢¸½ºß¡¢ECOFF ¤ò»È¤Ã¤Æ¤¤¤ë¥¿¡¼¥²¥Ã¥È¤Ç¤·¤«Æ°ºî¤·¤Æ¤¤¤Ê¤¤¡£ELF ¤Ç¤Ïư¤¤¤Æ¤¤¤Ê¤¤¡£
-membedded-data
-mno-embedded-data
²Äǽ¤Ç¤¢¤ì¤Ð¡¢ÊÑ¿ô¤ò¡¢¤Þ¤ººÇ½é¤ËÆÉ¤ß½Ð¤·ÀìÍѥǡ¼¥¿¥»¥¯¥·¥ç¥ó¤Ë³ä¤êÅö¤Æ¤ë¡£¼¡¤Ë²Äǽ¤Ç¤¢¤ì¤Ð¡¢¾®¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤Ë³ä¤êÅö¤Æ¤ë¡£¤µ¤â¤Ê¤±¤ì¤Ð¡¢¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤ËÃÖ¤¯¡£¤³¤¦¤¹¤ë¤È¡¢¥Ç¥Õ¥©¥ë¥È¤è¤ê¤â´öʬÃÙ¤¤¥³¡¼¥É¤Ë¤Ê¤ë¤¬¡¢¼Â¹Ô»þ¤ËɬÍ×¤Ê RAM ¤ÎÎ̤¬¾®¤µ¤¯¤Ê¤ë¤Î¤Ç¡¢¤¤¤¯¤Ä¤«¤ÎÁȤ߹þ¤ß¥·¥¹¥Æ¥à¤Ë¤È¤Ã¤Æ¤Ï˾¤Þ¤·¤¤¤À¤í¤¦¡£
-msingle-float
-mdouble-float
-msingle-float ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢r4650 ¥Á¥Ã¥×¤Î¤è¤¦¤Ë¡¢ÉâÆ°¾®¿ôÅÀ¥³¥×¥í¥»¥Ã¥µ¤¬Ã±ÀºÅٱ黻¤·¤«¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤ÈÁÛÄꤹ¤ë¡£-mdouble-float ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ÇÜÀºÅٱ黻¤ò»È¤¦¤è¤¦¤Ë¤Ê¤ë¡£¤³¤Á¤é¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mmad
-mno-mad
r4650 ¥Á¥Ã¥×¤Î¾ì¹ç¤Î¤è¤¦¤Ë¡¢mad¡¢madu¡¢mul Ì¿Îá¤ò»È¤¦¤³¤È¤òµö¤¹¡£
-m4650
-msingle-float¡¢-mmad¡¢¤½¤ì¤Ë¾¯¤Ê¤¯¤È¤â¸½ºß¤Î¤È¤³¤í¤Ç¤Ï¡¢-mcpu=r4650 ¤òÍ­¸ú¤Ë¤¹¤ë¡£
-mips16
-mno-mips16
16¥Ó¥Ã¥ÈÌ¿Îá¤òÍ­¸ú¤Ë¤¹¤ë¡£
-mentry
µ¿»÷Ì¿Îá entry ¤È exit ¤ò»È¤¦¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï -mips16 ¤ò°ì½ï¤Ë¤·¤«»È¤¨¤Ê¤¤¡£
-EL
¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¡¦¥â¡¼¥É¤Î¥×¥í¥»¥Ã¥µÍѤ˥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£É¬ÍפȤʤë¥é¥¤¥Ö¥é¥ê¤¬Â¸ºß¤¹¤ë¤È²¾Äꤹ¤ë¡£
-EB
¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¡¦¥â¡¼¥É¤Î¥×¥í¥»¥Ã¥µÍѤ˥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£É¬ÍפȤʤë¥é¥¤¥Ö¥é¥ê¤¬Â¸ºß¤¹¤ë¤È²¾Äꤹ¤ë¡£
-G num
num ¥Ð¥¤¥È°Ê²¼¤ÎÂ礭¤µ¤Î¥°¥í¡¼¥Ð¥ë¤Ê¥Ç¡¼¥¿¹àÌܤÈÀÅŪ¤Ê¥Ç¡¼¥¿¹àÌܤò¡¢ÉáÄ̤Υǡ¼¥¿¥»¥¯¥·¥ç¥ó¤ä bss ¥»¥¯¥·¥ç¥ó¤Ç¤Ï¤Ê¤¯¡¢¾®¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤ä¾® bss ¥»¥¯¥·¥ç¥ó¤ËÃÖ¤¯¡£¤³¤ì¤Ë¤è¤ê¡¢¥¢¥»¥ó¥Ö¥é¤¬¡¢Ä̾ï¤Î 2 Ì¿Îá¤Î¥á¥â¥ê»²¾È¤ÎÂå¤ï¤ê¤Ë¡¢¥°¥í¡¼¥Ð¥ë¥Ý¥¤¥ó¥¿(gp ¤¢¤ë¤¤¤Ï $28)¤Ë´ð¤Å¤¤¤¿°ìÌ¿Îá¤Î¥á¥â¥ê»²¾È¤òÀ¸À®¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£num ¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢MIPS ¤Î¥¢¥»¥ó¥Ö¥é¤ò»È¤¦¾ì¹ç¤Ë¤Ï 8 ¤Ç¡¢GNU ¥¢¥»¥ó¥Ö¥é¤ò»È¤¦¾ì¹ç¤Ë¤Ï 0 ¤Ç¤¢¤ë¡£-G num ¥ª¥×¥·¥ç¥ó¤Ï¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤Ë¤âÅϤµ¤ì¤ë¡£Á´¤Æ¤Î¥â¥¸¥å¡¼¥ë¤Ï¡¢Æ±¤¸ÃͤΠ-G num ¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-nocpp
MIPS ¥¢¥»¥ó¥Ö¥é¤ËÂФ·¡¢¥æ¡¼¥¶¤Î¥¢¥»¥ó¥Ö¥é¥½¡¼¥¹¥Õ¥¡¥¤¥ë(¥µ¥Õ¥£¥Ã¥¯¥¹¤¬.s ¤Î¤â¤Î)¤ò¥¢¥»¥ó¥Ö¥ë¤¹¤ë¤È¤­¤Ë¡¢¥¢¥»¥ó¥Ö¥é¤Î¥×¥ê¥×¥í¥»¥Ã¥µ¤ò¼Â¹Ô¤·¤Ê¤¤¤è¤¦¤Ë»Ø¼¨¤¹¤ë¡£

¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Þ¥·¥óµ­½Ò¤Î TARGET_SWITCHES ¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤é¤ì¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤â¡¢¤³¤Î¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤òÊѹ¹¤¹¤ë¤¬²Äǽ¤Ç¤¢¤ë¡£


Node:i386 Options, Next:, Previous:MIPS Options, Up:Submodel Options

Intel 386 ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬¡¢i386 ¥·¥ê¡¼¥º¸þ¤±¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mcpu=cpu type
Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò¹Ô¤¦ºÝ¤Îµ¡¼ï·¿¤Î¥Ç¥Õ¥©¥ë¥È¤ò cpu type ¤ÈÁÛÄꤹ¤ë¡£cpu type ¤Ë»ØÄê²Äǽ¤ÊÃͤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£

i386 i486 i586 i686
pentium pentiumpro k6

¤¢¤ëÆÃÄê¤Î cpu type ¤òÁª¤Ö¤È¤½¤ÎÆÃÄê¤Î¥Á¥Ã¥×¸þ¤±¤ËŬÀڤ˥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò¹Ô¤¦°ìÊý¤Ç¡¢GCC ¤Ï¡¢-march=cpu type ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¤È i386 ¾å¤Çưºî¤·¤Ê¤¤¥³¡¼¥É¤Ï°ìÀÚÀ¸À®¤·¤Ê¤¤¡£i586 ¤Ï pentium ¤Ë¡¢i686 ¤Ï pentiumpro ¤ËƱ¤¸¤Ç¤¢¤ë¡£k6 ¤Ï¡¢Intel ¤Î¥Á¥Ã¥×¤ËÂФ¹¤ë AMD ¤Î¥Á¥Ã¥×¤Ç¤¢¤ë¡£

-march=cpu type
µ¡¼ï·¿ cpu type ÍѤÎÌ¿Îá¤òÀ¸À®¤¹¤ë¡£cpu type ¤Ë»ØÄê¤Ç¤­¤ëÃͤϡ¢-mcpu ¤ËÂФ¹¤ë¤â¤Î¤ËƱ¤¸¤Ç¤¢¤ë¡£¤µ¤é¤Ë¸À¤¦¤Ê¤é¡¢-march=cpu type ¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤Ï¡¢-mcpu=cpu type ¤¬´Þ¤Þ¤ì¤ë¡£
-m386
-m486
-mpentium
-mpentiumpro
¤½¤ì¤¾¤ì¡¢-mcpu=i386¡¢-mcpu=i486¡¢-mcpu=pentium¡¢-mcpu=pentiumpro ¤ÎÊÌ̾¤Ç¤¢¤ë¡£¤³¤ì¤é¤ÎÊÌ̾¤ÏÈ¿ÂФò¾§¤¨¤é¤ì¤Æ¤¤¤ë¡£
-mieee-fp
-mno-ieee-fp
IEEE ÉâÆ°¾®¿ôÅÀÈæ³Ó¤ò»È¤¦¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¡£IEEE ÉâÆ°¾®¿ôÅÀÈæ³Ó¤ò»È¤¦¤È¡¢Èæ³Ó¤Î·ë²Ì¤¬½ç½ø¤Å¤±¤é¤ì¤Ê¤¤¾ì¹ç¤òÀµ¤·¤¯¼è¤ê°·¤¨¤ë¡£
-msoft-float
ÉâÆ°¾®¿ôÅÀÍѥ饤¥Ö¥é¥ê¸Æ¤Ó½Ð¤·¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£·Ù¹ð: ɬÍפȤʤë¥é¥¤¥Ö¥é¥ê¤Ï GCC ¤Î°ìÉô¤Ç¤Ï¤Ê¤¤¡£¤Ç¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ÉáÄ̤Ϥ½¤Îµ¡¼ï¤ÎÄ̾ï¤Î C ¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤¬»È¤ï¤ì¤ë¤¬¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¤³¤ì¤ò¤½¤Î¤Þ¤Þ¹Ô¤Ê¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¡¢Å¬Àڤʥ饤¥Ö¥é¥ê´Ø¿ô¤ò¼«Ê¬¤ÇÍѰդ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

´Ø¿ô¤ÎÉâÆ°¾®¿ôÅÀ¤ÎÌá¤êÃͤò 80387 ¤Î¥ì¥¸¥¹¥¿¡¦¥¹¥¿¥Ã¥¯¤ËÃÖ¤¯µ¡¼ï¤Ç¤Ï¡¢-msoft-float ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ç¤â¡¢¤¤¤¯¤é¤«ÉâÆ°¾®¿ôÅÀ¥ª¥Ú¥³¡¼¥É¤¬½ÐÎϤµ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£

-mno-fp-ret-in-387
´Ø¿ô¤ÎÌá¤êÃͤËÂФ·¡¢FPU ¥ì¥¸¥¹¥¿¤ò»È¤ï¤Ê¤¤¡£

Ä̾ï¤Î¸Æ½Ð¤·µ¬Ìó¤Ç¤Ï¡¢FPU ¤¬Ìµ¤¤¾ì¹ç¤Ç¤â¡¢´Ø¿ô¤Ï float ·¿¤Èdouble ·¿¤ÎÃͤò FPU ¥ì¥¸¥¹¥¿¤ÇÊÖ¤¹¡£OS ¤¬ FPU ¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤Ù¤­¤Ç¤¢¤ë¤È¤¤¤¦¹Í¤¨Êý¤Ç¤¢¤ë¡£

-mno-fp-ret-in-387 ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢Âå¤ï¤ê¤Ë¡¢float ·¿¤Èdouble ·¿¤ÎÃͤòÄ̾ï¤Î CPU ¤Î¥ì¥¸¥¹¥¿¤ËÆþ¤ì¤ÆÊÖ¤¹¡£

-mno-fancy-math-387
387 ¤Î¥¨¥ß¥å¥ì¡¼¥¿¤ÎÃæ¤Ë¤Ï¡¢387 ¤Î sin¡¢cos¡¢sqrt Ì¿Îá¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤â¤Î¤¬¤¢¤ë¡£¤½¤Î¾ì¹ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¡¢¤³¤ì¤é¤ÎÌ¿Îá¤òÀ¸À®¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏFreeBSD ¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£GCC ¤Î¥Ð¡¼¥¸¥ç¥ó 2.6.1 °Ê¹ß¤Ï¡¢-ffast-math ¥ª¥×¥·¥ç¥ó¤â»ØÄꤷ¤Ê¤¤¸Â¤ê¡¢¤³¤ì¤é¤ÎÌ¿Îá¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¡£
-malign-double
-mno-align-double
double ·¿¡¢long double ·¿¡¢long long ·¿¤ÎÊÑ¿ô¤òÆó¸ì¶­³¦¤ËÀ°Î󤹤뤫¡¢°ì¸ì¶­³¦¤ËÀ°Î󤹤뤫¤ò»ØÄꤹ¤ë¡£double ·¿¤ÎÊÑ¿ô¤òÆó¸ì¶­³¦¤ËÀ°Î󤵤»¤ë¤È¡¢Pentium ¥×¥í¥»¥Ã¥µ¤Ç¤Ï¥á¥â¥ê¤ò;ʬ¤Ë¿©¤¦¤â¤Î¤Î¡¢¤¤¤¯¤é¤«¹â®¤Ê¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£

Ãí°Õ¡£-malign-double ¤ò»È¤Ã¤¿¾ì¹ç¤Ï¡¢¾åµ­¤Î·¿¤ò´Þ¤à¹½Â¤ÂΤϡ¢À°Îó¤Î»ÅÊý¤¬¡¢386 ÍÑ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥Ð¥¤¥Ê¥ê¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹»ÅÍͽñ¤Î¤â¤Î¤È¤Ï°Û¤Ê¤ë¡£

-msvr3-shlib
-mno-svr3-shlib
GCC ¤¬Èó½é´ü²½¥í¡¼¥«¥ëÊÑ¿ô¤ò bss ¤ËÃÖ¤¯¤« data ¤ËÃÖ¤¯¤«¤òÀ©¸æ¤¹¤ë¡£-msvr3-shlib ¤ò»ØÄꤹ¤ë¤È bss ¤ËÃÖ¤¯¡£¤³¤ÎÆó¤Ä¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢System V Release 3 ¤Ç¤Î¤ß°ÕÌ£¤¬¤¢¤ë¡£
-mno-wide-multiply
-mwide-multiply
GCC ¤¬ mul ¤È imul ¤ò»È¤Ã¤Æ¡¢32¥Ó¥Ã¥È¤Î¥ª¥Ú¥é¥ó¥É¤«¤élong long ¤Î¾è»»¤ÈÄê¿ô¤Ë¤è¤ë 32¥Ó¥Ã¥È½ü»»¤ò¹Ô¤Ã¤Æ¡¢eax:edx ¤Ë 64 ¥Ó¥Ã¥È¤Î·ë²Ì¤òÀ¸À®¤¹¤ë¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¡£
-mrtd
°Û¤Ê¤ë´Ø¿ô¸Æ½Ð¤·µ¬Ìó¤ò»È¤¦¡£¤³¤Îµ¬Ìó¤Ç¤Ï¡¢·è¤Þ¤Ã¤¿¿ô¤Î°ú¿ô¤ò¼è¤ë´Ø¿ô¤Ïret num Ì¿Îá¤ÇÌá¤ë¡£¤³¤ÎÌ¿Îá¤Ï¡¢Ìá¤ë¤È¤­¤Ë°ú¿ô¤ò¥Ý¥Ã¥×¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¸Æ½Ð¤·Â¦¤Ç°ìÌ¿ÎáÀáÌó¤Ç¤­¤ë¡£¸Æ½Ð¤·Â¦¤Ç°ú¿ô¤ò¥Ý¥Ã¥×¤¹¤ëɬÍפ¬¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

¸Ä¡¹¤Î´Ø¿ô¤¬¤³¤Î¸Æ½Ð¤·µ¬Ìó¤Ç¸Æ¤Ð¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï´Ø¿ô°À­ stdcall ¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¡£¤Þ¤¿¡¢´Ø¿ô°À­ cdecl ¤ò»È¤¦¤È¤ò-mrtd ¥ª¥×¥·¥ç¥ó¤ò¾å½ñ¤­¤Ç¤­¤ë¡£See Function Attributes¡£

Ãí°Õ¡£¤³¤Î¸Æ½Ð¤·µ¬Ìó¤ÏÄ̾ï Unix ¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤È¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢Unix ¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¤È¤­¤Ë¤Ï»ÈÍѤǤ­¤Ê¤¤¡£

¤Þ¤¿¡¢²ÄÊÑ¿ô°ú¿ô(printf ¤ò´Þ¤à)¤ò¼è¤ë´Ø¿ôÁ´¤Æ¤Ë´Ø¿ô¥×¥í¥È¥¿¥¤¥×¤òÄ󶡤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤¦¤·¤Ê¤¤¤È¡¢¤½¤ì¤é¤Î´Ø¿ô¤Î¸Æ½Ð¤·¤ËÂФ·¡¢Àµ¤·¤¯¤Ê¤¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤·¤Þ¤¦¡£

¤µ¤é¤Ë¡¢°ú¿ô¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤¹¤®¤ë´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤È½ÅÂç¤Ê¸í¤ê¤Î¤¢¤ë¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¡£(ÉáÄÌ¡¢°ú¿ô¤¬Í¾Ê¬¤Ë¤¢¤ë¾ì¹ç¤ÏÌäÂê¤Ê¤¯Ìµ»ë¤µ¤ì¤ë¡£)

-mreg-alloc=regs
À°¿ô¥ì¥¸¥¹¥¿¤Î³äÅö½ç½ø¤Î¥Ç¥Õ¥©¥ë¥È¤ò»ØÄꤹ¤ë¡£Ê¸»úÎó regs ¤Ï¡¢¥ì¥¸¥¹¥¿¤ò»ØÄꤹ¤ë°ìÏ¢¤Îʸ»ú¤Ç¤¢¤ë¡£»ÈÍѤǤ­¤ëʸ»ú¤Ï¼¡¤ÎÄ̤ꡣa ¤Ï EAX ¤ò³ä¤êÅö¤Æ¤ë¡£b ¤Ï EBX¡¢c ¤Ï ECX¡¢d ¤Ï EDX¡¢S ¤ÏESI¡¢D ¤Ï EDI¡¢B ¤Ï EBP ¤ò³ä¤êÅö¤Æ¤ë¡£
-mregparm=num
À°¿ô°ú¿ô¤òÅϤ¹¤Î¤Ë¥ì¥¸¥¹¥¿¤ò²¿¸Ä»È¤¦¤«¤ò»ØÄꤹ¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢°ú¿ô¤òÅϤ¹¤Î¤Ë¤Ï¥ì¥¸¥¹¥¿¤Ï°ì¸Ä¤â»È¤ï¤ì¤º¡¢ºÇÂç¤Ç¤â 3 ¸Ä¤Î¥ì¥¸¥¹¥¿¤¬»ÈÍѲÄǽ¤Ç¤¢¤ë¡£¤¢¤ëÆÃÄê¤Î´Ø¿ô¤Ç¤³¤Î¿¶¤ë¤Þ¤¤¤òÊѤ¨¤¿¤¤¤È¤­¤Ï¡¢´Ø¿ô°À­ regparm ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£See Function Attributes.

·Ù¹ð:¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¡¢¤«¤Ä num ¤¬¥¼¥í¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢¤É¤ó¤Ê¥é¥¤¥Ö¥é¥ê¤â´Þ¤á¤Æ¡¢Á´¤Æ¤Î¥â¥¸¥å¡¼¥ë¤òƱ¤¸ÃͤǺî¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥·¥¹¥Æ¥à¤Î¥é¥¤¥Ö¥é¥ê¤È¥¹¥¿¡¼¥È¥¢¥Ã¥×¥â¥¸¥å¡¼¥ë¤âÎã³°¤Ç¤Ï¤Ê¤¤¡£

-malign-loops=num
¥ë¡¼¥×¤ò 2 ¤Î num ¾è¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤹤롣-malign-loops ¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢gas 2.8 °Ê¹ß¤ò»È¤ï¤Ê¤¤¸Â¤ê¥Ç¥Õ¥©¥ë¥È¤Ï 2 ¤Ç¤¢¤ë¡£gas 2.8 °Ê¹ß¤Î¾ì¹ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ï¡¢8 ¥Ð¥¤¥È¤è¤êÎ¥¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥ë¡¼¥×¤ò 16 ¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤹤롣
-malign-jumps=num
Ì¿Îá¤Î¥¸¥ã¥ó¥×À褬 2 ¤Î num ¾è¶­³¦¤Ë¤Ê¤ë¤è¤¦¤ËÀ°Î󤹤롣-malign-jumps ¤ò»ØÄꤷ¤Ê¤¤¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Ï386 ¤ÇºÇŬ²½¤ò¹Ô¤¦¾ì¹ç¤Ï 2 ¤Ç¤¢¤ê¡¢486 ¤Ë¤Ä¤¤¤Æ¤Ï gas 2.8 °Ê¹ß¤ò»È¤ï¤Ê¤¤¸Â¤ê 4 ¤Ç¤¢¤ë¡£gas 2.8 °Ê¹ß¤Î¾ì¹ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ï¡¢8 ¥Ð¥¤¥È¤è¤êÎ¥¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥ë¡¼¥×¤ò 16 ¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤹤롣
-malign-functions=num
´Ø¿ô¤Î³«»ÏÅÀ¤ò 2 ¤Î num ¾è¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤹤롣-malign-functions ¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ï¡¢386 ÍѤ˺ÇŬ²½¤¹¤ë¾ì¹ç¤Ï 2 ¤Ç¡¢486 ÍѤ˺ÇŬ²½¤¹¤ë¾ì¹ç¤Ï 4 ¤Ç¤¢¤ë¡£
-mpreferred-stack-boundary=num
¥¹¥¿¥Ã¥¯¶­³¦¤ò 2 ¤Î num ¾è¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤷤Ƥ¤¤ë¾õÂÖ¤òÊݤĤ³¤È¤ò»î¤ß¤ë¡£-mpreferred-stack-boundary ¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ï 4(16¥Ð¥¤¥È¤« 128 ¥Ó¥Ã¥È)¤Ç¤¢¤ë¡£

¥¹¥¿¥Ã¥¯¤Ï 4 ¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤵤»¤ëɬÍפ¬¤¢¤ë¡£Pentium ¤È PentiumPro ¤Ç¤Ï¡¢double ¤È long double ¤ÎÃͤÏ8 ¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤹤ë¤Ù¤­¤Ç¤¢¤ë¡£¤½¤¦¤·¤Ê¤¤¤È¡¢¼Â¹Ô»þ¤Ë¼Â¹Ô®ÅÙ¤Î¥Ú¥Ê¥ë¥Æ¥£¤¬Èó¾ï¤ËÂ礭¤¯¤Ê¤ë¡£Pentium III ¤Ç¤Ï¡¢¥¹¥È¥ê¡¼¥ß¥ó¥° SIMD ³ÈÄ¥(SSE) ¥Ç¡¼¥¿·¿ __m128 ¤Ï¡¢16 ¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤷤Ƥª¤«¤Ê¤¤¤ÈƱÍÍ¤Î¥Ú¥Ê¥ë¥Æ¥£¤ò¼õ¤±¤ë¡£

¥¹¥¿¥Ã¥¯¾å¤Î¤³¤ì¤é¤ÎÃͤΥ¢¥é¥¤¥ó¥á¥ó¥È¤¬Å¬Àڤˤʤ뤳¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ë¡¢¥¹¥¿¥Ã¥¯¶­³¦¤Ï¡¢¥¹¥¿¥Ã¥¯¤Ë³ÊǼ¤µ¤ì¤¿Ç¤°Õ¤ÎÃͤÇɬÍפˤʤë¤À¤±¤ÎÂ礭¤µ¤Î¥¢¥é¥¤¥á¥ó¥È¤ËÀ°Î󤵤»¤ëɬÍפ¬¤¢¤ë¡£¤µ¤é¤Ë¡¢³Æ´Ø¿ô¤Ï¡¢¥¹¥¿¥Ã¥¯¤Î¥¢¥é¥¤¥á¥ó¥È¤òÊݤĤ褦¤ËÀ¸À®¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥¹¥¿¥Ã¥¯¶­³¦¤ò¹â¤¯¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿´Ø¿ô¤ò¥¹¥¿¥Ã¥¯¶­³¦¤òÄ㤯¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿´Ø¿ô¤«¤é¸Æ¤Ó½Ð¤¹¤Î¤Ï¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¥¹¥¿¥Ã¥¯¤ÎÀ°Îó¤¬Àµ¤·¤¯¤Ê¤¯¤Ê¤ë¡£¥³¡¼¥ë¥Ð¥Ã¥¯¤ò»È¤¦¥é¥¤¥Ö¥é¥ê¤Ï¾ï¤Ë¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤ò»È¤¦¤³¤È¤ò¤ª¾©¤á¤¹¤ë¡£

¥¢¥é¥¤¥á¥ó¥È¤ò;ʬ¤Ë¼è¤ì¤Ð¡¢¥¹¥¿¥Ã¥¯¥¹¥Ú¡¼¥¹¤â;ʬ¤Ë»È¤¦¡£¥¹¥¿¥Ã¥¯¥¹¥Ú¡¼¥¹¤Î»ÈÍÑÎ̤ËÃí°Õ¤·¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¥³¡¼¥É¡¢Î㤨¤Ð¡¢ÁȤ߹þ¤ß¥·¥¹¥Æ¥à¤ä OS ¤Î¥«¡¼¥Í¥ëÅù¤Ï¡¢-mpreferred-stack-boundary=2 ¤È»ØÄꤷ¤Æ¡¢¹¥¤Þ¤·¤¤¥¢¥é¥¤¥ó¥á¥ó¥È¤ò¾®¤µ¤¯¤¹¤ë¤Î¤¬Îɤ¤¤À¤í¤¦¡£


Node:HPPA Options, Next:, Previous:i386 Options, Up:Submodel Options

HPPA ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ HPPA ¥·¥ê¡¼¥º¸þ¤±¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-march=architecture type
»ØÄꤵ¤ì¤¿¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£architecture type ¤È¤·¤Æ»ÈÍѲÄǽ¤ÊÃͤϡ¢PA 1.0 ¤ËÂФ·¤Æ¤Ï 1.0¡¢PA 1.1 ¤Ë¤Ï 1.1¡¢PA 2.0 ¤Ë¤Ï2.0 ¤Ç¤¢¤ë¡£HP-UX ¤Î /usr/lib/sched.models ¤ò»²¾È¤·¤Æ¡¢¼«Ê¬¤Îµ¡¼ïÍѤÎŬÀڤʥ¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î¥ª¥×¥·¥ç¥ó¤ò·è¤á¤ÆÍߤ·¤¤¡£¥¢¡¼¥­¥Æ¥¯¥Á¥ãÈֹ椬¾®¤µ¤¤¤â¤ÎÍѤ˥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥³¡¼¥É¤Ï¡¢Â礭¤¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤âưºî¤¹¤ë¤¬¡¢µÕ¤Ïưºî¤·¤Ê¤¤¡£

PA 2.0 ¤Î¥µ¥Ý¡¼¥È¤Ï¸½ºß GAS ¤Î¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Î 19990413 °Ê¹ß¤¬É¬ÍפǤ¢¤ë¡£binutils ¤Î¼¡¤Î¥ê¥ê¡¼¥¹(¸½ºß¤Ï 2.9.1)¤Ç¡¢¤ª¤½¤é¤¯PA 2.0 ¤Î¥µ¥Ý¡¼¥È¤¬Æþ¤ë¤À¤í¤¦¡£

-mpa-risc-1-0
-mpa-risc-1-1
-mpa-risc-2-0
¤½¤ì¤¾¤ì¡¢-march=1.0¡¢-march=1.1¡¢-march=2.0 ¤ÎÊÌ̾¤Ç¤¢¤ë¡£
-mbig-switch
Â礭¤Ê switch ʸÍѤÎɽ¤ËŬ¤·¤¿¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥¢¥»¥ó¥Ö¥é¤ä¥ê¥ó¥«¤¬ switch ʸÍѤÎɽ¤ÎÈÏ°ÏÆâ¤Îʬ´ôÀè¤ò±Û¤¨¤Æ¤¤¤ë¤È¤¤¤¦Ê¸¶ç¤ò¸À¤Ã¤¿¾ì¹ç¤Ë¤Î¤ß»È¤¦¤³¤È¡£
-mjump-in-delay
´Ø¿ô¸Æ¤Ó¤À¤·¤ÎÃٱ䥹¥í¥Ã¥È¤ò̵¾ò·ï¥¸¥ã¥ó¥×Ì¿Îá¤ÇËä¤á¤ë¡£¤³¤ì¤Ï¡¢¤½¤Î´Ø¿ô¸Æ¤Ó¤À¤·¤ÎÌá¤ê¥¢¥É¥ì¥¹¥Ý¥¤¥ó¥¿¤ò¾ò·ï¥¸¥ã¥ó¥×¤Î¥¿¡¼¥²¥Ã¥È¤Ë¤Ê¤ë¤è¤¦¤Ë½¤Àµ¤¹¤ë¤³¤È¤Ç¹Ô¤Ê¤¦¡£
-mdisable-fpregs
¤É¤ó¤Ê·Á¤Ç¤¢¤ì¡¢ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ò»È¤¦¤Î¤òÈò¤±¤ë¡£¤³¤ì¤Ï¡¢ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤Î¥³¥ó¥Æ¥­¥¹¥ÈÀÚÂØ¤¨¤¬ÃÙ¤¤¥«¡¼¥Í¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤ËɬÍפˤʤ롣¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¡¢¤«¤Ä¡¢ÉâÆ°¾®¿ôÅÀ±é»»¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬°Û¾ï½ªÎ»¤¹¤ë¡£
-mdisable-indexing
¥¤¥ó¥Ç¥Ã¥¯¥¹ÉÕ¤­¥¢¥É¥ì¥Ã¥·¥ó¥°¥â¡¼¥É¤ò»È¤¦¤Î¤òÈò¤±¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢MACH ¤Ç MIG ¤Ë¤è¤êÀ¸À®¤µ¤ì¤¿¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤ÎÉÔÌÀÎÆ¤ÊÌäÂê¤ò²óÈò¤Ç¤­¤ë¡£
-mno-space-regs
¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ë¥¹¥Ú¡¼¥¹¡¦¥ì¥¸¥¹¥¿¤¬¤Ê¤¤¤ÈÁÛÄꤷ¤¿¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢GCC ¤Ï¡¢¤è¤ê¹â®¤Ê´ÖÀܸƽФ·¤òÀ¸À®¤·¡¢¥¹¥±¡¼¥ê¥ó¥°¤Ê¤·¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ÉÕ¤­¥¢¥É¥ì¥Ã¥·¥ó¥°¥â¡¼¥É¤ò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¡£

¤³¤Î¤è¤¦¤Ê¥³¡¼¥É¤Ï¡¢¥ì¥Ù¥ë 0 ¤Î PA ¥·¥¹¥Æ¥à¤ä¥«¡¼¥Í¥ë¤ËŬ¤·¤Æ¤¤¤ë¡£

-mfast-indirect-calls
¥¹¥Ú¡¼¥¹¶­³¦¤ò±Û¤¨¤¿¸Æ½Ð¤·¤Ï¤Ê¤¤¤ÈÁÛÄꤷ¤¿¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¤è¤ê¹â®¤Ê´ÖÀܸƽФ·¤ò¹Ô¤Ê¤¦¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤ä´Ø¿ôÆâ´Ø¿ô¤¬¤¢¤ë¾ì¹ç¤Ë¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£

-mspace
¼Â¹Ô»þ´Ö¤è¤ê¤â¥á¥â¥ê¶õ´Ö¤òºÇŬ²½¤¹¤ë¡£¸½»þÅÀ¤Ç¤Ï¡¢¤³¤ì¤Ï´Ø¿ô¥×¥í¥í¡¼¥°¤È¥¨¥Ô¥í¡¼¥°¤ò¥¤¥ó¥é¥¤¥óŸ³«¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢PIC ÍÑ¥³¡¼¥ÉÀ¸À®¤È¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤È¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£
-mlong-load-store
HP-UX 10 ¤Î¥ê¥ó¥«¤Ë¤è¤êɬÍפȤµ¤ì¤ë¤³¤È¤¬¤¢¤ë¡¢3Ì¿Îá¤Î¥í¡¼¥É¡¿¥¹¥È¥¢Ì¿ÎáÎó¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢HP ¤Î¥³¥ó¥Ñ¥¤¥é¤Î +k ¥ª¥×¥·¥ç¥ó¤ÈÅù²Á¤Ç¤¢¤ë¡£
-mportable-runtime
HP ¤Î ELF ¥·¥¹¥Æ¥à¸þ¤±¤ËÄ󰯤µ¤ì¤Æ¤¤¤ë¥Ý¡¼¥¿¥Ö¥ë¤Ê¸Æ½Ð¤·µ¬Ìó¤ò»È¤¦¡£
-mgas
GAS ¤·¤«Ç§¼±¤·¤Ê¤¤¥¢¥»¥ó¥Ö¥éÌ¿Îá¤ò»ÈÍѤ¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£
-mschedule=cpu type
µ¡¼ï cpu type ¤ËÂФ¹¤ëÀ©¸Â¤Ë½¾¤Ã¤Æ¥³¡¼¥É¤ò¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤¹¤ë¡£cpu type ¤Î¼è¤ê¤¦¤ëÃͤϡ¢700¡¢7100¡¢7100LC¡¢7200¡¢8000 ¤Ç¤¢¤ë¡£HP-UX ¥·¥¹¥Æ¥à¤Î /usr/lib/sched.models ¤ò»²¾È¤·¤Æ¡¢ÆÉ¼Ô¤Îµ¡¼ï¤ËŬ¤·¤¿¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥ª¥×¥·¥ç¥ó¤ò·è¤á¤ÆÍߤ·¤¤¡£
-mlinker-opt
HP-UX ¥ê¥ó¥«¤ÎºÇŬ²½¥Ñ¥¹¤òÍ­¸ú¤Ë¤¹¤ë¡£¤¿¤À¤·¡¢¤³¤ì¤Ë¤è¤ê¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥°¤¬½ÐÍè¤Ê¤¯¤Ê¤ë¤³¤È¤ËÃí°Õ¡£¤Þ¤¿¡¢HP-UX 8 ¤È HP-UX 9 ¤Î¥ê¥ó¥«¤Ë¤¢¤ë¥Ð¥°¤ò°ú¤­½Ð¤·¤Æ¤·¤Þ¤¦¡£¤³¤Î¥Ð¥°¤Ï¡¢²¿¤«¤Î¥×¥í¥°¥é¥à¤ò¥ê¥ó¥¯¤¹¤ë¤È¤­¤ËÀµ¤·¤¯¤Ê¤¤¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡£
-msoft-float
ÉâÆ°¾®¿ôÅÀÍѥ饤¥Ö¥é¥ê¸Æ¤Ó½Ð¤·¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£·Ù¹ð: ɬÍפȤʤë¥é¥¤¥Ö¥é¥ê¤ÏÁ´¤Æ¤Î HPPA ¥¿¡¼¥²¥Ã¥È¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ÉáÄ̤Ϥ½¤Îµ¡¼ï¤ÎÄ̾ï¤Î C ¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤¬»È¤ï¤ì¤ë¤¬¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¤³¤ì¤ò¤½¤Î¤Þ¤Þ¹Ô¤Ê¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ï¡¢Å¬Àڤʥ饤¥Ö¥é¥ê´Ø¿ô¤ò¼«Ê¬¤ÇÍѰդ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ÁȤ߹þ¤ß¥¿¡¼¥²¥Ã¥È hppa1.1-*-pro ¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤ëÉâÆ°¾®¿ôÅÀ¥µ¥Ý¡¼¥È¤òÄ󶡤·¤Æ¤¤¤ë¡£

-msoft-float ¤ò»ØÄꤹ¤ë¤È¡¢½ÐÎÏ¥Õ¥¡¥¤¥ëÃæ¤Î¸Æ¤Ó½Ð¤·µ¬Ìó¤¬ÊѤï¤ë¡£¤³¤Î¤¿¤á¡¢¥×¥í¥°¥é¥àÁ´ÂΤò¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£ÆÃ¤Ë¡¢GCC ÉÕ°¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤¢¤ë¡¢libgcc.a ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë¡¢-msoft-float ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤¤È¤³¤Î¥é¥¤¥Ö¥é¥ê¤¬Àµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£


Node:Intel 960 Options, Next:, Previous:HPPA Options, Up:Submodel Options

Intel 960 ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ Intel 960 ¤Î¼ÂÁõÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mcpu type
Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¡¢ÉâÆ°¾®¿ôÅÀ¥µ¥Ý¡¼¥È¡¢¥¢¥É¥ì¥Ã¥·¥ó¥°¥â¡¼¥É¤ò´Þ¤à¤½¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¡¢µ¡¼ï·¿ cpu type ÍѤΥǥե©¥ë¥È¤ò²¾Äꤹ¤ë¡£cpu type ¤È¤·¤Æ»ØÄê²Äǽ¤Ê¤Î¤Ï¡¢¼¡¤ÎÄ̤ꡣka¡¢kb¡¢mc¡¢ca¡¢cf¡¢sa¡¢sb¡£¥Ç¥Õ¥©¥ë¥È¤Ï kb ¤Ç¤¢¤ë¡£
-mnumerics
-msoft-float
-mnumerics ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥×¥í¥»¥Ã¥µ¤¬ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤³¤È¤ò»Ø¼¨¤¹¤ë¡£-msoft-float ¥ª¥×¥·¥ç¥ó¤Ï¡¢ÉâÆ°¾®¿ôÅÀ¥µ¥Ý¡¼¥È¤òÁÛÄꤷ¤Æ¤Ï¤Ê¤é¤Ê¤¤¤È¤¤¤¦¤³¤È¤ò»Ø¼¨¤¹¤ë¡£
-mleaf-procedures
-mno-leaf-procedures
call ƱÍÍ bal Ì¿Îá¤Ç¤â¸Æ½Ð¤·²Äǽ¤Ë¤Ê¤ë¤è¤¦¤ËËöü¥×¥í¥·¡¼¥¸¥ã¤ò½¤Àµ¤¹¤ë¤³¤È¤ò»î¤ß¤ë(»î¤ß¤Ê¤¤)¡£¤³¤ì¤Ï¡¢bal Ì¿Î᤬¥¢¥»¥ó¥Ö¥é¤ä¥ê¥ó¥«¤ÇÃÖ¤­´¹¤¨²Äǽ¤Ê¾ì¹ç¤ÏÌÀ¼¨Åª¤Ê¸Æ½Ð¤·¤Ë¤Ä¤¤¤Æ¤Ï¥³¡¼¥É¤Î¸úΨ¤¬Îɤ¯¤Ê¤ë¡£¤·¤«¤·¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¡¢Î㤨¤Ð´Ø¿ô¥Ý¥¤¥ó¥¿·Ðͳ¤Î¸Æ½Ð¤·¤ä¡¢¤³¤Î¤è¤¦¤ÊºÇŬ²½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥ê¥ó¥«¤ò»È¤¦¾ì¹ç¤Ë¤Ï¥³¡¼¥É¤Î¸úΨ¤¬°­¤¯¤Ê¤ë¡£
-mtail-call
-mno-tail-call
ËöÈøºÆµ¢¸Æ½Ð¤·¤òʬ´ô¤ËºÇŬ²½¤¹¤ë¤Î¤òÄɲäÇ(GCC ¤Îµ¡¼ïÆÈΩÉô¤Ç¹Ô¤¦¤â¤Î°Ê³°¤Ë)»î¤ß¤ë¡£ÆÉ¼Ô¤Ï¤³¤ì¤ò¤ä¤é¤Ê¤¤Êý¤¬Îɤ¤¤À¤í¤¦¡£¤³¤ì¤¬Í­¸ú¤Ç¤Ê¤¤¾ì¹ç¤ò¸¡½Ð¤¹¤ë¤Î¤¬¤Þ¤À´°Á´¤Ç¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï -mno-tail-call ¤Ç¤¢¤ë¡£
-mcomplex-addr
-mno-complex-addr
Ê£»¨¤Ê¥¢¥É¥ì¥Ã¥·¥ó¥°¥â¡¼¥É¤ò»È¤¦¤Î¤Ï¡¢»ÈÍѤ·¤Æ¤¤¤ë i960 ¤Î¼ÂÁõ¤Ç¤Ï¡¢Îɤ¤·ë²Ì¤¬ÆÀ¤é¤ì¤ë¤È¤¤¤¦¤³¤È¤òÁÛÄꤹ¤ë(ÁÛÄꤷ¤Ê¤¤)¡£Ê£»¨¤Ê¥¢¥É¥ì¥Ã¥·¥ó¥°¥â¡¼¥É¤Ï K ¥·¥ê¡¼¥º¤Ç¤Ï²ÁÃͤ¬¤Ê¤¤¤¬¡¢C ¥·¥ê¡¼¥º¤Ç¤Ï¾ò·ïÉÕ¤­¤ÇÍ­¸ú¤Ç¤¢¤ë¡£¸½ºß¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢CB ¤È CC °Ê³°¤ÎÁ´¤Æ¤Î¥×¥í¥»¥Ã¥µ¤Ç¤Ï-mcomplex-addr ¤Ë¤Ê¤ë¡£
-mcode-align
-mno-code-align
¹â®¤Ê¥Õ¥§¥Ã¥Á¤Î¤¿¤á¤Ë 8 ¥Ð¥¤¥È¶­³¦¤Ë¥³¡¼¥É¤òÀ°Î󤵤»¤ë(¤¢¤ë¤¤¤Ï¡¢µ¤¤Ë¤·¤Ê¤¤)¡£¸½ºß¤Î¤È¤³¤í¡¢¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤ë¤Î¤Ï¡¢C ¥·¥ê¡¼¥º¤Î¼ÂÁõ¤Î¾ì¹ç¤À¤±¤Ç¤¢¤ë¡£
-mic-compat
-mic2.0-compat
-mic3.0-compat
iC960 ¤Î v2.0 ¤ä v3.0 ¤È¸ß´¹À­¤òÍ­¸ú¤Ë¤¹¤ë¡£
-masm-compat
-mintel-asm
iC960 ¥¢¥»¥ó¥Ö¥é¤È¤Î¸ß´¹À­¤òÍ­¸ú¤Ë¤¹¤ë¡£
-mstrict-align
-mno-strict-align
À°Î󤷤Ƥ¤¤Ê¤¤¥¢¥¯¥»¥¹¤òµö¤µ¤Ê¤¤(µö¤¹)¡£
-mold-align
¹½Â¤ÂΤΥ¢¥é¥¤¥ó¥á¥ó¥È¤Ë¤Ä¤¤¤Æ¡¢Intel ÈÇ GCC ¤Î¥Ð¡¼¥¸¥ç¥ó 1.3(gcc 1.37¥Ù¡¼¥¹) ¤È¤Î¸ß´¹À­¤òÍ­¸ú¤Ë¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ï¡¢-mstrict-align ¤â´Þ¤Þ¤ì¤ë
-mlong-double-64
long double ·¿¤ò 64 ¥Ó¥Ã¥ÈÉâÆ°¾®¿ôÅÀ¿ô¤È¤·¤Æ¼ÂÁõ¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢long double ¤Ï 80 ¥Ó¥Ã¥ÈÉâÆ°¾®¿ôÅÀ¿ô¤Ç¼ÂÁõ¤µ¤ì¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Â¸ºß¤¹¤ëÍ£°ì¤ÎÍýͳ¤Ï¡¢fp-bit.c ¤Ë¤Ï¤Þ¤À 128 ¥Ó¥Ã¥È¤Î long double ¥µ¥Ý¡¼¥È¤¬¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤ëÉâÆ°¾®¿ôÅÀ±é»»¤ò¹Ô¤¦¥¿¡¼¥²¥Ã¥È¤ò»ÈÍѤ¹¤ë¿Í¤Ë¤·¤«Ìò¤ËΩ¤¿¤Ê¤¤¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢»È¤ï¤Ê¤¤¤è¤¦¤Ë¤ª¾©¤á¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£


Node:DEC Alpha Options, Next:, Previous:Intel 960 Options, Up:Submodel Options

DEC Alpha ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬¡¢DEC Alpha ¤Î¼ÂÁõ¸þ¤±¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mno-soft-float
-msoft-float
ÉâÆ°¾®¿ôÅÀ±é»»¤ËÂФ·¤Æ¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò»È¤¦(»È¤ï¤Ê¤¤)¡£-msoft-float ¤ò»ØÄꤹ¤ë¤È¡¢libgcc1.c ¤Ë¤¢¤ë´Ø¿ô¤¬ÉâÆ°¾®¿ôÅÀ±é»»¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£ÉâÆ°¾®¿ôÅÀ±é»»¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¥ë¡¼¥Á¥ó¤ÇÃÖ¤­´¹¤¨¤ë¤«¡¢¤½¤Î¤è¤¦¤Ê¥¨¥ß¥å¥ì¡¼¥È¤ò¹Ô¤¦¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¤«¤·¤Ê¤¤¸Â¤ê¡¢¤³¤ì¤é¤Î¥ë¡¼¥Á¥ó¤ÏÉâÆ°¾®¿ôÅÀ±é»»¤òȯ¹Ô¤¹¤ë¡£ÉâÆ°¾®¿ôÅÀ±é»»¤Ê¤·¤Î Alpha ¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤¦¤Ê¤é¡¢¥é¥¤¥Ö¥é¥ê¤¬¤½¤ì¤é¤Î¥ë¡¼¥Á¥ó¤ò¸Æ¤Ó½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¹½ÃÛ¤µ¤ì¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

ÉâÆ°¾®¿ôÅÀ±é»»¤Ê¤·¤Î Alpha ¤Î¼ÂÁõ¤Ç¤âÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤¬É¬ÍפǤ¢¤ë¤³¤È¤ËÃí°Õ¡£

-mfp-reg
-mno-fp-regs
ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¥»¥Ã¥È¤ò»È¤¦(»È¤ï¤Ê¤¤)¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£-mno-fp-regs ¤ò»ØÄꤹ¤ë¤È -msoft-float ¤¬°ÅÌۤ˻ØÄꤵ¤ì¤ë¡£ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¥»¥Ã¥È¤¬»È¤ï¤ì¤Ê¤¤¾ì¹ç¡¢ÉâÆ°¾®¿ôÅÀ¥ª¥Ú¥é¥ó¥É¤Ï¤½¤ì¤¬À°¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤ËÀ°¿ô¥ì¥¸¥¹¥¿¤ËÆþ¤ì¤ÆÅϤµ¤ì¡¢ÉâÆ°¾®¿ôÅÀ¤Î·ë²Ì¤Ï$f0 ¤ÎÂå¤ï¤ê¤Ë $0 ¤ÇÊÖ¤µ¤ì¤ë¡£¤³¤ì¤Ïɸ½à¤Î¸Æ½Ð¤·¥·¡¼¥±¥ó¥¹¤È¤Ï°ã¤¦¤Î¤Ç¡¢-mno-fp-regs ÉÕ¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤Ç¡¢ÉâÆ°¾®¿ôÅÀ°ú¿ô¤äÌá¤êÃͤò»ý¤Ä¤â¤Î¤â¤Þ¤¿¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»È¤ï¤ì¤ë¤Î¤Ï¡¢ÉáÄ̤ϡ¢ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ò»È¤ï¤º¡¢¤½¤ì¤æ¤¨¤ËÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ò¥»¡¼¥Ö¡¿¥ê¥¹¥È¥¢¤¹¤ëɬÍפΤʤ¤¥«¡¼¥Í¥ë¤ò¹½ÃÛ¤¹¤ë¤È¤­¤Ç¤¢¤ë¡£

-mieee
Alpha ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ï¡¢ÉâÆ°¾®¿ôÅÀÍѥϡ¼¥É¥¦¥§¥¢¤òºÇÂç¤ÎÀ­Ç½¤ò½Ð¤¹¤è¤¦¤ËºÇŬ²½¤·¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¡£¤³¤Î¼ÂÁõ¤Ï¡¢IEEE ÉâÆ°¾®¿ôÅÀµ¬³Ê¤Ë¤Û¤Ü½àµò¤·¤Æ¤¤¤ë¡£¤À¤¬¡¢´°Á´¤Ë½àµò¤¹¤ë¤Ë¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ë¤è¤ëÊä½õ¤¬É¬ÍפǤ¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¢inexact flag ¤¬ÊÝ»ý¤µ¤ì¤Ê¤¤(²¼µ­»²¾È)¤È¤¤¤¦ÅÀ¤ò½ü¤¤¤Æ¡¢IEEE ¤Ë´°Á´¤Ë½àµò¤·¤¿¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È CPP ¥Þ¥¯¥í _IEEE_FP ¤¬¥³¥ó¥Ñ¥¤¥ë»þ¤ËÄêµÁ¤µ¤ì¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢-D_IEEE_FP -mfp-trap-mode=su -mtrap-precision=i -mieee-conformant ¤Î¾Êά·Á¤Ç¤¢¤ë¡£¤³¤Î·ë²ÌÀ¸À®¤µ¤ì¤ë¥³¡¼¥É¤Ï´ö¤é¤«¸úΨ¤¬Íî¤Á¤ë¤¬¡¢ÈóÀµµ¬²½¿ô¤È¡¢Èó¿ô¤ÈÀµÉé¤Î̵¸ÂÂç¤Î¤è¤¦¤Ê IEEE ¤ÎÎã³°ÃͤòÀµ¤·¤¯¥µ¥Ý¡¼¥È¤Ç¤­¤ë¡£Â¾¤Î Alpha ÍÑ¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤ò -ieee_with_no_inexact ¤È¸Æ¤ó¤Ç¤¤¤ë¡£
-mieee-with-inexact
¤³¤ì¤Ï -mieee ¤ÈƱÍͤÀ¤¬¡¢À¸À®¤µ¤ì¤¿¥³¡¼¥É¤Ï IEEE ¤Î inexact flag ¤Î°Ý»ý¤â¹Ô¤¦¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë¤È¡¢À¸À®¤µ¤ì¤¿¥³¡¼¥É¤Ï´°Á´¤Ë½àµò¤·¤¿ IEEE ¤Î¿ô³Ø±é»»¤ò¼ÂÁõ¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢-D_IEEEFP -D_IEEE_FP_INEXACT ¤Ë²Ã¤¨¤Æ¡¢-mieee-conformant¡¢-mfp-trap-mode=sui¡¢-mtrap-precision=i ¤Î»°¤Ä¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¤â¤Î¤Î¾Êά·Á¤Ç¤¢¤ë¡£Alpha ¤Î¼ÂÁõ¤ÎÃæ¤Ë¤Ï¤³¤¦¤·¤ÆÆÀ¤é¤ì¤¿¥³¡¼¥É¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤ÇÀ¸À®¤µ¤ì¤ë¥³¡¼¥É¤è¤ê¤âÈó¾ï¤ËÃÙ¤¯¤Ê¤ë¤â¤Î¤¬¤¢¤ë¡£inexact flag ¤Ë°Í¸¤¹¤ë¤è¤¦¤Ê¥³¡¼¥É¤ÏÌÇ¿¤Ë¤Ê¤¤¤Î¤Ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤òÉáÄ̤ϻØÄꤷ¤Ê¤¯¤ÆÎɤ¤¤Ï¤º¤Ç¤¢¤ë¡£Â¾¤Î Alpha ÍÑ¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤ò-ieee_with_inexact ¤È¤·¤Æ¤¤¤ë¡£
-mfp-trap-mode=trap mode
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¤É¤ÎÉâÆ°¾®¿ôÅÀ´Ø·¸¤Î¥È¥é¥Ã¥×¤òÍ­¸ú¤Ë¤¹¤ë¤«¤ò°·¤¦¡£Â¾¤Î Alpha ÍÑ¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¡¢-fptmtrap mode ¤È¸À¤Ã¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£trap mode ¤Ë¤Ï°Ê²¼¤Î»Í¤Ä¤ÎÃͤΤ¦¤Á°ì¤Ä¤òÀßÄê²Äǽ¤Ç¤¢¤ë¡£
n
¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È(Ä̾normal)¤ÎÀßÄê¤Ç¤¢¤ë¡£Í­¸ú¤Ë¤Ê¤ë¥È¥é¥Ã¥×¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤Ç¤Ï̵¸ú¤Ë¤Ç¤­¤Ê¤¤¤â¤Î(Î㤨¤Ð¡¢¥¼¥í¤Ë¤è¤ë½ü»»)¤À¤±¤Ç¤¢¤ë¡£
u
n ¤ÇÍ­¸ú¤Ë¤Ê¤ë¥È¥é¥Ã¥×¤Ë²Ã¤¨¤Æ¡¢¥¢¥ó¥À¡¼¥Õ¥í¡¼¤Ë¤è¤ë¥È¥é¥Ã¥×¤¬Í­¸ú¤Ë¤Ê¤ë¡£
su
u ¤ÈƱÍͤÀ¤¬¡¢Ì¿Îá¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢Êä´°(¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢Alpha ¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤Î¤³¤È)¤ËÂФ·¤Æ°ÂÁ´¤Ç¤¢¤ë¤È¤Î°õ¤¬¤Ä¤±¤é¤ì¤ë¡£
sui
su ¤ÈƱÍͤÀ¤¬¡¢ÉÔÀµ³Î¤Ê¥È¥é¥Ã¥×¤âƱ¤¸¤¯Í­¸ú¤Ë¤Ê¤ë¡£

-mfp-rounding-mode=rounding mode
IEEE ¤Î´Ý¤á¥â¡¼¥É¤òÁªÂò¤¹¤ë¡£Â¾¤Î Alpha ÍÑ¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¡¢-fprmrounding mode ¤È¸À¤Ã¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£rounding mode ¤Ï°Ê²¼¤Î¤É¤ì¤«°ì¤Ä¤Ç¤¢¤ë¡£
n
Ä̾ï¤Î IEEE ´Ý¤á¥â¡¼¥É¡£ÉâÆ°¾®¿ôÅÀ¿ô¤ÏºÇ¶á¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Çɽ¸½¤Ç¤­¤ë¿ô¤Ë¸þ¤«¤Ã¤Æ´Ý¤á¤é¤ì¤ë¡£Æó¤Ä¤Î¿ô¤Î¤Á¤ç¤¦¤ÉÃæ´Ö¤Î¾ì¹ç¤Ï¶ö¿ô¤ÎÊý¤Ë¸þ¤«¤Ã¤Æ´Ý¤á¤é¤ì¤ë¡£
m
Éé¤Î̵¸ÂÂç¤Ë¸þ¤«¤Ã¤Æ´Ý¤á¤ë¡£
c
ÀÚ¤ê¼Î¤Æ´Ý¤á¥â¡¼¥É¡£ÉâÆ°¾®¿ôÅÀ¿ô¤Ï¥¼¥í¤Ë¸þ¤«¤Ã¤Æ´Ý¤á¤é¤ì¤ë¡£
d
ưŪ´Ý¤á¥â¡¼¥É¡£ÉâÆ°¾®¿ôÅÀÀ©¸æ¥ì¥¸¥¹¥¿(fpcr¡¢Alpha ¥¢¡¼¥­¥Æ¥¯¥Á¥ã»²¾È¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤Î¤³¤È)Ãæ¤Î¤¢¤ë¥Õ¥£¡¼¥ë¥É¤¬Í­¸ú¤Ë¤Ê¤ë´Ý¤á¥â¡¼¥É¤òÀ©¸æ¤¹¤ë¡£C ¥é¥¤¥Ö¥é¥ê¤Ï¡¢¤³¤Î¥ì¥¸¥¹¥¿¤òÀµ¤Î̵¸ÂÂç¤Ë¸þ¤«¤Ã¤Æ´Ý¤á¤ë¥â¡¼¥É¤Ë½é´ü²½¤¹¤ë¡£¤³¤Î¤¿¤á¡¢¥×¥í¥°¥é¥à¤Ç fpcr ¤òÊѹ¹¤·¤Ê¤¤¸Â¤ê¡¢d ¤ÏÀµ¤Î̵¸ÂÂç¤Ë¸þ¤«¤Ã¤Æ¤Î´Ý¤á¤ËÂбþ¤¹¤ë¡£

-mtrap-precision=trap precision
Alpha ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢ÉâÆ°¾®¿ôÅÀ¥È¥é¥Ã¥×¤ÏÉÔÀµ³Î¤Ç¤¢¤ë¡£¤³¤ì¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤Î½õ¤±¤ò¼Ú¤ê¤Ê¤¯¤Æ¤Ï¡¢ÉâÆ°¾®¿ôÅÀ¥È¥é¥Ã¥×¤«¤é²óÉü¤¹¤ë¤Î¤¬ÉÔ²Äǽ¤Ç¤¢¤ê¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ÏÉáÄ̤ϽªÎ»¤µ¤»¤ëɬÍפ¬¤¢¤ë¤È¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£GCC ¤Ï OS ¤Î¥È¥é¥Ã¥×¡¦¥Ï¥ó¥É¥é¤ò½õ¤±¤ë¥³¡¼¥É¤òÀ¸À®¤·¡¢ÉâÆ°¾®¿ôÅÀ¥È¥é¥Ã¥×¤¬È¯À¸¤·¤¿Àµ³Î¤Ê°ÌÃÖ¤òÆÃÄꤹ¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÍ×µá¤Ë±þ¤¸¤Æ¡¢Àµ³Î¤µ¤Î¥ì¥Ù¥ë¤ò°Ê²¼¤«¤éÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
p
¥×¥í¥°¥é¥àÀºÅÙ¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ê¡¢¥È¥é¥Ã¥×¥Ï¥ó¥É¥é¤Ï¤É¤Î¥×¥í¥°¥é¥à¤¬ÉâÆ°¾®¿ôÅÀÎã³°¤ò°ú¤­µ¯¤³¤·¤¿¤«¤·¤«ÆÃÄê¤Ç¤­¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
f
´Ø¿ôÀºÅÙ¡£¥È¥é¥Ã¥×¥Ï¥ó¥É¥é¤ÏÉâÆ°¾®¿ôÅÀÎã³°¤ò°ú¤­µ¯¤³¤·¤¿´Ø¿ô¤ò·èÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
i
Ì¿ÎáÀºÅÙ¡£¥È¥é¥Ã¥×¥Ï¥ó¥É¥é¤ÏÉâÆ°¾®¿ôÅÀÎã³°¤ò°ú¤­µ¯¤³¤·¤¿Ì¿Î᤽¤Î¤â¤Î¤ò·èÄê¤Ç¤­¤ë¡£

¾¤Î Alpha ÍÑ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¤³¤ì¤é¤ËÅù²Á¤Ê¥ª¥×¥·¥ç¥ó -scope_safe ¤ä-resumption_safe ¤òÍѰդ·¤Æ¤¤¤ë¡£

-mieee-conformant
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢À¸À®¤µ¤ì¤¿¥³¡¼¥É¤Ë IEEE ¤ËŬ¹ç¤·¤Æ¤¤¤ë¤È¤Î¥Þ¡¼¥¯¤òÉÕ¤±¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¤­¤Ï¡¢-mtrap-precision=i¤È¡¢-mfp-trap-mode=su ¤« -mfp-trap-mode=sui ¤Î¤É¤Á¤é¤«¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¸ú²Ì¤Ï¡¢À¸À®¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥ê¥Õ¥¡¥¤¥ë¤Î´Ø¿ô¥×¥í¥í¡¼¥°Éô¤Ë .eflag 48 ¤È¤¤¤¦¹Ô¤ò°ì¹Ô²Ã¤¨¤ë¤À¤±¤Ç¤¢¤ë¡£DEC Unix ¤Ç¤Ï¡¢¤³¤ì¤Ë¤Ï¡¢ IEEEŬ¹ç¿ô³Ø¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤¬¥ê¥ó¥¯¤µ¤ì¤ë¤È¤¤¤¦¸ú²Ì¤¬¤¢¤ë¡£
-mbuild-constants
Ä̾ï GCC ¤Ï¡¢32 ¥Ó¥Ã¥È¤Þ¤¿¤Ï 64 ¥Ó¥Ã¥È¤ÎÀ°¿ôÄê¿ô¤Ë¤Ä¤¤¤Æ¡¢¤½¤ì¤¬¤è¤ê¾®¤µ¤ÊÄê¿ô¤«¤éÆó¤Ä¤Þ¤¿¤Ï»°¤Ä¤ÎÌ¿Îá¤Ç¹½ÃۤǤ­¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£¤½¤ì¤¬½ÐÍè¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤ÎÄê¿ô¤ò¤½¤Î¤Þ¤Þ½ÐÎϤ·¡¢¼Â¹Ô»þ¤Ë¥Ç¡¼¥¿¡¦¥»¥°¥á¥ó¥È¤«¤é¤ò¥í¡¼¥É¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È GCC ¤Ï¡¢¤¿¤È¤¨¡¢¤µ¤é¤ËÌ¿Îá¿ô¤¬Áý¤¨¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤â(ºÇÂç¤Ç6¸Ä)¡¢Á´¤Æ¤ÎÀ°¿ôÄê¿ô¤òÌ¿Îᥳ¡¼¥É¤Ç¹½ÃÛ¤¹¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦ÂåɽŪ¤Ê¾ì¹ç¤Ï¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤ÎưŪ¥í¡¼¥À¤ò¹½ÃÛ¤¹¤ë¤È¤­¤Ç¤¢¤ë¡£Æ°Åª¥í¡¼¥À¤Ï¤½¤ì¼«¿È¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ç¤¢¤ê¡¢ÊÑ¿ô¤äÄê¿ô¤ò¼«Ê¬¼«¿È¤Î¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤«¤é¸«¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ëÁ°¤Ë¡¢¥á¥â¥êÃæ¤Ç¼«Ê¬¼«¿È¤òºÆÇÛÃÖ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

-malpha-as
-mgas
¥Ù¥ó¥ÀÄ󶡤Υ¢¥»¥ó¥Ö¥é¤Ë¤è¤ê¥¢¥»¥ó¥Ö¥ë¤µ¤ì¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë(-malpha-as)¤«¡¢GNU ¥¢¥»¥ó¥Ö¥é(-mgas)¤Ë¥¢¥»¥ó¥Ö¥ë¤µ¤ì¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤«¤òÁªÂò¤¹¤ë¡£
-mbwx
-mno-bwx
-mcix
-mno-cix
-mmax
-mno-max
¥ª¥×¥·¥ç¥ó¤ÎÌ¿Î᥻¥Ã¥È¡¢BWX¡¢CIX¡¢MAX ¤ò»È¤¦¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤è¤¦GCC ¤Ë»Ø¼¨¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡¢-mcpu= ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿CPU ·¿¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëÌ¿Î᥻¥Ã¥È¤«¡¢²¿¤â»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤ÏGCC ¤Î¹½ÃÛ¤ò¹Ô¤Ã¤¿ CPU ¤Î¤â¤Î¤Ë¤Ê¤ë¡£
-mcpu=cpu_type
Ì¿Î᥻¥Ã¥È¡¢¥ì¥¸¥¹¥¿¥»¥Ã¥È¡¢Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ñ¥é¥á¡¼¥¿¤òµ¡¼ï cpu_type ÍѤËÀßÄꤹ¤ë¡£EV ·Á¼°¤Î̾Á°¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¤·¡¢¤½¤ì¤ËÂбþ¤¹¤ë CPU ¥Á¥Ã¥×ÈÖ¹æ¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£GCC ¤Ï¡¢EV4 ¤È EV5 ¥·¥ê¡¼¥º¤Î¥×¥í¥»¥Ã¥µÍѤΥ¹¥±¥¸¥å¡¼¥ê¥ó¥°¡¦¥Ñ¥é¥á¡¼¥¿¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢Ì¿Î᥻¥Ã¥È¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϥ桼¥¶¤¬»ØÄꤷ¤¿¥×¥í¥»¥Ã¥µ¤«¤éÁªÂò¤¹¤ë¡£¥×¥í¥»¥Ã¥µ·¿¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï¡¢GCC ¤Ï¡¢GCC ¤Î¹½ÃÛ¤ò¹Ô¤Ã¤¿¥×¥í¥»¥Ã¥µ¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¤¹¤ë¡£

cpu_type ¤ÎÃͤȤ·¤Æ»È¤¨¤ë¤Î¤Ï°Ê²¼¤ÎÄ̤ꡣ

ev4
21064
EV4 ¤È¤·¤Æ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò¹Ô¤Ê¤¤¡¢Ì¿Î᥻¥Ã¥È¤Î³ÈÄ¥¤Ï¤Ê¤¤¤â¤Î¤È¤¹¤ë¡£
ev5
21164
EV5 ¤È¤·¤Æ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò¹Ô¤Ê¤¤¡¢Ì¿Î᥻¥Ã¥È¤Î³ÈÄ¥¤Ï¤Ê¤¤¤â¤Î¤È¤¹¤ë¡£
ev56
21164a
EV5 ¤È¤·¤Æ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò¹Ô¤Ê¤¤¡¢BWX ³ÈÄ¥¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£
pca56
21164pc
21164PC
EV5 ¤È¤·¤Æ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò¹Ô¤Ê¤¤¡¢BWX ¤È MAX ³ÈÄ¥¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£
ev6
21264
EV5 ¤È¤·¤Æ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ò¹Ô¤Ê¤¤(DEC ¤¬ EV6 ÍѤΥ¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ñ¥é¥á¡¼¥¿¤òȯɽ¤¹¤ë¤Þ¤Ç¤Ï)¡¢BWX¡¢CIX¡¢MAX ³ÈÄ¥¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£

-mmemory-latency=time
¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é¸«¤¨¤ëŵ·¿Åª¤Ê¥á¥â¥ê»²¾È¤ËÂФ·¡¢¥¹¥±¥¸¥å¡¼¥é¤¬ÁÛÄꤹ¤Ù¤­¥ì¥¤¥Æ¥ó¥·¤òÀßÄꤹ¤ë¡£¤³¤Î¿ô¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬»È¤¦¥á¥â¥ê¥¢¥¯¥»¥¹¥Ñ¥¿¥ó¤È³°Éô¥­¥ã¥Ã¥·¥å¤ÎÂ礭¤µ¤ËÈó¾ï¤Ë°Í¸¤¹¤ë¡£

time ¤È¤·¤ÆÍ­¸ú¤ÊÃͤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£

number
¥¯¥í¥Ã¥¯¿ô¤òɽ¤¹ 10¿Ê¿ô¡£
L1
L2
L3
main
GCC ¤Ï¡¢¡Öŵ·¿Åª¤Ê¡× EV4 ¤È EV5 ¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥ì¥Ù¥ë1¡¢2¡¢3 ¤Î¥­¥ã¥Ã¥·¥å¤ò»ý¤Ä¾ì¹ç¤Ë¤Ä¤¤¤Æ¤Î¥¯¥í¥Ã¥¯¥µ¥¤¥¯¥ë¿ô¤Î¸«ÀÑÃͤò¡¢¼çµ­²±¤Ë¤¿¤¤¤¹¤ë¤â¤Î¤ÈƱÍͤËÊÝ»ý¤·¤Æ¤¤¤ë¡£L3 ¤Ï EV5 ¤ËÂФ·¤Æ¤Î¤ßÍ­¸ú¤Ç¤¢¤ë¤³¤È¤ËÃí°Õ¡£


Node:Clipper Options, Next:, Previous:DEC Alpha Options, Up:Submodel Options

Clipper ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬¡¢Clipper ¤Î¼ÂÁõÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mc300
C300 Clipper ¥×¥í¥»¥Ã¥µÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mc400
C400 Clipper ¥×¥í¥»¥Ã¥µÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿ f8..f15 ¤ò»ÈÍѤ¹¤ë¡£


Node:H8/300 Options, Next:, Previous:Clipper Options, Up:Submodel Options

H8/300 ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬¡¢H8/300 ¤Î¼ÂÁõÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mrelax
¥ê¥ó¥¯»þ¤Ë´ö¤Ä¤«¤Î¥¢¥É¥ì¥¹»²¾È¤ò²Äǽ¤Ç¤¢¤ì¤Ðû¤¯¤¹¤ë¡£¥ê¥ó¥«¤Î -relax ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¡£¤è¤ê¾Ü¤·¤¤ÀâÌÀ¤Ë¤Ä¤¤¤Æ¤Ï¡¢See H8/300, ¤ò»²¾È¡£
-mh
H8/300H ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-ms
H8/S ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-mint32
int ·¿¤Î¥Ç¡¼¥¿¤ò¥Ç¥Õ¥©¥ë¥È¤Ç 32 ¥Ó¥Ã¥È¤Ë¤¹¤ë¡£
-malign-300
h8/300h ¤Ç¡¢h8/300 ¤ÈƱ¤¸¥¢¥é¥¤¥ó¥á¥ó¥Èµ¬Â§¤ò»È¤¦¡£h8/300h ¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢long ¤È float ¤Ï 4 ¥Ð¥¤¥È¶­³¦¤ËÀ°¹ç¤¹¤ë¡£-malign-300 ¤Ï¡¢¤½¤ì¤é¤ò 2 ¥Ð¥¤¥È¶­³¦¤ËÀ°¹ç¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢h8/300 ¤Ç¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¡£


Node:SH Options, Next:, Previous:H8/300 Options, Up:Submodel Options

SH ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬¡¢SH ¤Î¼ÂÁõÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-m1
SH1 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-m2
SH2 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-m3
SH3 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-m3e
SH3e ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-mb
¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¡¦¥â¡¼¥É¤Î¥×¥í¥»¥Ã¥µÍѤ˥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£
-ml
¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¡¦¥â¡¼¥É¤Î¥×¥í¥»¥Ã¥µÍѤ˥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£
-mdalign
double ·¿¤ò 64 ¥Ó¥Ã¥È¶­³¦¤ËÀ°Î󤹤롣¤³¤ì¤Ï¸Æ½Ð¤·µ¬Ìó¤òÊѤ¨¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢É¸½à C ¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Î¤¤¤¯¤Ä¤«¤Î´Ø¿ô¤Ï¡¢¤Þ¤º -mdalign ¤ò»ØÄꤷ¤ÆºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤ª¤«¤Ê¤¤¤Èưºî¤·¤Ê¤¤¤À¤í¤¦¡£
-mrelax
¥ê¥ó¥¯»þ¤Ë´ö¤Ä¤«¤Î¥¢¥É¥ì¥¹»²¾È¤ò²Äǽ¤Ç¤¢¤ì¤Ðû¤¯¤¹¤ë¡£¥ê¥ó¥«¤Î -relax ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¡£


Node:System V Options, Next:, Previous:SH Options, Up:Submodel Options

System V ¸þ¤±¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤¬ System V Release 4 ¤Ç¤ÏÄɲäǻȤ¨¤ë¡£¤³¤ì¤é¤Ï¡¢System V Relase 4 ¥·¥¹¥Æ¥à¤Î¾¤Î¥³¥ó¥Ñ¥¤¥é¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë¤¢¤ë¡£

-G
¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¤òºî¤ë¡£Âå¤ï¤ê¤Ë -symbolic ¤« -shared ¤ò»È¤¦¤³¤È¤¬¿ä¾©¤µ¤ì¤ë¡£
-Qy
¥³¥ó¥Ñ¥¤¥é¤¬»ÈÍѤ¹¤ë³Æ¥Ä¡¼¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¡¢¥¢¥»¥ó¥Ö¥éÌ¿Îá .ident ¤ËÆþ¤ì¤Æ½ÐÎϤ¹¤ë¡£
-Qn
.ident Ì¿Îá¤ò½ÐÎÏ¥Õ¥¡¥¤¥ë¤ËÄɲ乤ë¤Î¤ò»ß¤á¤ë(¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë)¡£
-YP,dirs
-l ¤Ç»ØÄꤵ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ¥Ç¥£¥ì¥¯¥È¥ê dirs ¤À¤±¤ò¸¡º÷¤·¡¢Â¾¤Î¾ì½ê¤ò¸¡º÷¤·¤Ê¤¤¡£
-Ym,dir
¥×¥ê¥×¥í¥»¥Ã¥µ M4 ¤ò¥Ç¥£¥ì¥¯¥È¥ê dir ¤«¤éõ¤¹¡£¥¢¥»¥ó¥Ö¥é¤¬¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¡£


Node:TMS320C3x/C4x Options, Next:, Previous:System V Options, Up:Submodel Options

TMS320C3x/C4x ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬¡¢TMS320C3x/C4x ¤Î¼ÂÁõÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£


-mcpu=cpu_type
µ¡¼ï·¿ cpu_type ÍѤÎÌ¿Î᥻¥Ã¥È¡¢¥ì¥¸¥¹¥¿¥»¥Ã¥È¡¢Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤹ¤ë¡£cpu_type ¤ÎÃͤȤ·¤Æ»È¤¨¤ë¤Î¤Ï¡¢c30¡¢c31¡¢c32¡¢c40¡¢c44 ¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï c40 ¤Ç¤¢¤ê¡¢TMS320C40 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£
-mbig-memory
-mbig
-msmall-memory
-msmall
¥Ó¥Ã¥°¡¦¥á¥â¥ê¡¦¥â¥Ç¥ë¤¢¤ë¤¤¤Ï¥¹¥â¡¼¥ë¡¦¥á¥â¥ê¡¦¥â¥Ç¥ë¸þ¤±¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¥¹¥â¡¼¥ë¡¦¥á¥â¥ê¡¦¥â¥Ç¥ë¤Ç¤Ï¡¢Á´¤Æ¤Î¥Ç¡¼¥¿¤¬°ì¸Ä¤Î 64K¸ì¥Ú¡¼¥¸¤Ë¼ý¤Þ¤ë¤ÈÁÛÄꤹ¤ë¡£¼Â¹Ô»þ¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ú¡¼¥¸(DP)¥ì¥¸¥¹¥¿¤¬¡¢.bss ¤È .data ¥»¥¯¥·¥ç¥ó¤ò´Þ¤à¤½¤Î 64K ¥Ú¡¼¥¸¤ò»Ø¤¹¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥Ó¥Ã¥°¡¦¥á¥â¥ê¡¦¥â¥Ç¥ë¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ê¡¢Ä¾ÀÜŪ¤Ê¥á¥â¥ê¥¢¥¯¥»¥¹Ëè¤Ë DP ¥ì¥¸¥¹¥¿¤ÎºÆ¥í¡¼¥É¤òɬÍפȤ¹¤ë¡£
-mbk
-mno-bk
°ìÈÌŪ¤ÊÀ°¿ô¥ª¥Ú¥é¥ó¥É¤ò¥Ö¥í¥Ã¥¯¥«¥¦¥ó¥È¥ì¥¸¥¹¥¿ BK ¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤òµö¤¹(µö¤µ¤Ê¤¤)¡£
-mdb
-mno-db
¥Ç¥¯¥ê¥á¥ó¥È¤·¤ÆÊ¬´ô¡¢¤¹¤Ê¤ï¤Á DBcond(D) Ì¿Îá¤ò»È¤¦¥³¡¼¥É¤ÎÀ¸À®¤òÍ­¸ú¤Ë¤¹¤ë(̵¸ú¤Ë¤¹¤ë)¡£C4x ¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤ë¡£°ÂÁ´¤Î¤¿¤á¤Ë C3x ¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£C3x ¤Ç¤ÎºÇÂç·«¤êÊÖ¤·²ó¿ô¤Ï2^23+1¤À¤«¤é¤Ç¤¢¤ë¡£(¤Ç¤â°ìÂÎ郎 C3x ¤Ç 2^23 ²ó°Ê¾å¥ë¡¼¥×¤ò·«¤êÊÖ¤¹¤À¤í¤¦¤«?) GCC ¤Ï¡¢¥ë¡¼¥×¤òµÕ½ç¤Ë²ó¤·¤Æ¡¢¥Ç¥¯¥ê¥á¥ó¥È¤·¤ÆÊ¬´ôÌ¿Îá¤ò¤Ê¤ë¤Ù¤¯»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤¬¡¢¥ë¡¼¥×¤ÎÃæ¤Ë¥á¥â¥ê»²¾È¤¬Ê£¿ô²ó¤¢¤ë¾ì¹ç¤Ï¤¢¤­¤é¤á¤Æ¤·¤Þ¤¦¡£¤Ä¤Þ¤ê¡¢RPTB Ì¿Îá¤¬ÍøÍѤǤ­¤Ê¤¤¥ë¡¼¥×¥«¥¦¥ó¥¿¤¬¥Ç¥¯¥ê¥á¥ó¥È¤µ¤ì¤ë¥ë¡¼¥×¤Î¾ì¹ç¤Ç¤â¡¢´ö¤é¤«¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£
-mdp-isr-reload
-mparanoid
DP ¥ì¥¸¥¹¥¿¤ò¡¢³ä¤ê¹þ¤ß¥µ¡¼¥Ó¥¹¥ë¡¼¥Á¥ó(ISR) ¤ÎÆþ¤ê¸ýÅÀ¤Ç¥»¡¼¥Ö¤·¡¢¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤ò»Ø¤¹¤è¤¦¤ËºÆ¥í¡¼¥É¤·¡¢ISR ¤Î½Ð¸ýÅÀ¤Ç¥ê¥¹¥È¥¢¤¹¤ë¤³¤È¤ò¶¯À©¤¹¤ë¡£¤³¤ì¤Ï¡¢¤À¤ì¤«¤¬¡¢Î㤨¤Ð¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¥é¥¤¥Ö¥é¥êÆâ¤Ç¡¢DP ¥ì¥¸¥¹¥¿¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¾®¥á¥â¥ê¥â¥Ç¥ë¤Ë°ãÈ¿¤·¤Ê¤¤¸Â¤ê¡¢É¬ÍפȤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£
-mmpyi
-mno-mpyi
C3x ¤ËÂФ·¤Æ¤Ï¡¢À°¿ô¤Î¾è»»¤Ë¤Ï¥é¥¤¥Ö¥é¥ê¸Æ½Ð¤·¤ÎÂå¤ï¤ê¤Ë24 ¥Ó¥Ã¥È MPYI Ì¿Îá¤ò»È¤¤¡¢32¥Ó¥Ã¥È¤Î·ë²Ì¤òÊݾڤ¹¤ë¡£¥ª¥Ú¥é¥ó¥É¤Î°ì¤Ä¤¬Äê¿ô¤Ê¤é¡¢¤³¤Î¾è»»¤Ï¥·¥Õ¥È¤È²Ã»»¤ò»È¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¡£C3X ¤Î¾ì¹ç¤Ë -mmpyi ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¤È¡¢¥é¥¤¥Ö¥é¥ê¸Æ½Ð¤·¤ÎÂå¤ï¤ê¤Ë¡¢Ê¿Êý±é»»¤¬¥¤¥ó¥é¥¤¥ó¤Ç¹Ô¤ï¤ì¤ë¡£
-mfast-fix
-mno-fast-fix
ÉâÆ°¾®¿ôÅÀÃͤòÀ°¿ôÃͤËÊÑ´¹¤¹¤ë C3x/C4x ¤Î FIX Ì¿Îá¤Ç¡¢¤½¤ÎÉâÆ°¾®¿ôÅÀÃͤ˺Ǥâ¶á¤¤À°¿ô¤Ç¤Ï¤Ê¤¯¡¢ÉâÆ°¾®¿ôÅÀÃͰʲ¼¤ÎºÇ¤â¶á¤¤À°¿ô¤òÁª¤Ö¡£¤³¤Î¤¿¤á¡¢ÉâÆ°¾®¿ôÅÀÃͤ¬Éé¤Ê¤é¡¢·ë²Ì¤¬ÉÔÀµ¤ËÂǤÁÀÚ¤é¤ì¤ë¤Î¤Ç¡¢¤½¤ì¤ò¸¡½Ð¤·¤ÆÊäÀµ¤¹¤ë¥³¡¼¥É¤¬ÄɲäÇɬÍפˤʤ롣¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢·ë²Ì¤ÎÊäÀµ¤ËɬÍפÊÄɲ峡¼¥É¤ÎÀ¸À®¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-mrptb
-mno-rptb
¥ª¡¼¥Ð¥Ø¥Ã¥É̵¤·¤Î¥ë¡¼¥×²½¤Î¤¿¤á¤Ë¡¢RPTB Ì¿Îá¤ò»È¤Ã¤¿·«¤êÊÖ¤·¥Ö¥í¥Ã¥¯Îó¤òÀ¸À®¤¹¤ë¤³¤È¤òÍ­¸ú¤Ë¤¹¤ë¡£RPTB ¹½Ê¸¤Ï¡¢ºÇÆâ¦¤Î¥ë¡¼¥×¤Ç¡¢´Ø¿ô¸Æ½Ð¤·¤ä¥ë¡¼¥×¶­³¦¤ò±Û¤¨¤ë¥¸¥ã¥ó¥×¤¬¤Ê¤¤¾ì¹ç¤Ë¤À¤±»È¤ï¤ì¤ë¡£RPTB ¥ë¡¼¥×¤òÆþ¤ì»Ò¤Ë¤¹¤ë¤Î¤Ï¡¢RC¡¢RS¡¢RE ¥ì¥¸¥¹¥¿¤ò¥»¡¼¥Ö¡¿¥ê¥¹¥È¥¢¤¹¤ë¤Î¤ËɬÍפʥª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¤¢¤ë¤Î¤Ç¡¢ÍøÅÀ¤Ï¤Ê¤¤¡£¤³¤ì¤Ï¡¢-O2 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤ë¡£
-mrpts=count
-mno-rpts
°ì¸Ä¤ÎÌ¿Îá¤ò·«¤êÊÖ¤¹Ì¿Îá RPTS ¤ò»È¤¦¤³¤È¤òÍ­¸ú¤Ë¤¹¤ë(̵¸ú¤Ë¤¹¤ë)¡£·«¤êÊÖ¤·¤ò¹Ô¤¦¥Ö¥í¥Ã¥¯¤ËÌ¿Î᤬°ì¸Ä¤¢¤ê¡¢¥ë¡¼¥×²ó¿ô¤¬ count ̤Ëþ¤Ç¤¢¤ë¤³¤È¤¬ÊݾڲÄǽ¤Ê¤é¡¢GCC ¤Ï RPTB ¤ÎÂå¤ï¤ê¤Ë RPTS Ì¿Îá¤òÀ¸À®¤¹¤ë¡£Ãͤò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï¡¢¥ë¡¼¥×²ó¿ô¤¬¥³¥ó¥Ñ¥¤¥ë»þ¤Ë·èÄê¤Ç¤­¤Ê¤¯¤Æ¤âRPTS ¤¬À¸À®¤µ¤ì¤ë¡£RPTS ¤Ë³¤¯·«¤êÊÖ¤µ¤ì¤ëÌ¿Îá¤Ï¡¢³Æ·«¤êÊÖ¤·¤Ç¥á¥â¥ê¤«¤éºÆ¥í¡¼¥É¤¹¤ëɬÍפϤʤ¤¤Î¤Ç¡¢¥ª¥Ú¥é¥ó¥É¤ËÂФ·¤Æ CPU ¥Ð¥¹¤ò²òÊü¤¹¤ë¡£¤¿¤À¤·¡¢³ä¤ê¹þ¤ß¤Ï¤³¤ÎÌ¿Îá¤Ë¤è¤ê¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤Î¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
-mloop-unsigned
-mno-loop-unsigned
RPTS ¤È RPTB(¤½¤ì¤Ë C40 ¤Î¾ì¹ç¤Ï DB¤â)¤ò»È¤¦¤È¤­¤ÎºÇÂç¤Î·«¤êÊÖ¤·²ó¿ô¤Ï2^23 + 1 ¤Ç¤¢¤ë¡£¤³¤ì¤é¤ÎÌ¿Îá¤Ï¡¢·«¤êÊÖ¤·²ó¿ô¤¬Éé¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò¥Æ¥¹¥È¤·¤Æ¡¢¥ë¡¼¥×¤ò½ªÎ»¤µ¤»¤ë¤«¤é¤Ç¤¢¤ë¡£·«¤êÊÖ¤·²ó¿ô¤¬Éä¹æÌµ¤·¤Ç¤¢¤ì¤Ð¡¢ºÇÂç·«¤êÊÖ¤·²ó¿ô¤¬ 2~23 + 1 ¤ò±Û¤¨¤ë²ÄǽÀ­¤¬¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÉä¹æÌµ¤·¤Î·«¤êÊÖ¤·²ó¿ô¤òµö¤¹¡£
-mti
TI ¥¢¥»¥ó¥Ö¥é(asm30) ¸þ¤±¤Î¥¢¥»¥ó¥Ö¥é¹½Ê¸¤ò½ÐÎϤ¹¤ë¡£¤Þ¤¿¡¢TI C3x C ¥³¥ó¥Ñ¥¤¥é¤ÇºÎÍѤµ¤ì¤Æ¤¤¤ë API ¤È¤Î¸ß´¹À­¤â¶¯Íפ¹¤ë¡£Î㤨¤Ð¡¢long double ·¿¤ÏÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ËÆþ¤ì¤Æ¤Ç¤Ï¤Ê¤¯¹½Â¤ÂΤȤ·¤ÆÅϤµ¤ì¤ë¡£
-mregparm
-mmemparm
´Ø¿ô¤Ë°ú¿ô¤òÅϤ¹¤Î¤Ë¥ì¥¸¥¹¥¿(¥¹¥¿¥Ã¥¯)¤ò»È¤¦¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢°ú¿ô¤Ï²Äǽ¤Ê½ê¤Ç¤Ï¡¢¥¹¥¿¥Ã¥¯¤Ë°ú¿ô¤ò¥×¥Ã¥·¥å¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¥ì¥¸¥¹¥¿¤ÇÅϤµ¤ì¤ë¡£
-mparallel-insns
-mno-parallel-insns
ÊÂÎóÌ¿Îá¤ÎÀ¸À®¤òµö¤¹¡£-O2 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤ë¡£
-mparallel-mpy
-mno-parallel-mpy
-mparallel-insns ¤â»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢ÊÂÎóÌ¿Îá MPY||ADD ¤È MPY||SUB ¤ÎÀ¸À®¤òµö¤¹¡£¤³¤ì¤é¤ÎÌ¿Îá¤Ï¥ì¥¸¥¹¥¿¤ÎÀ©Ì󤬤­¤Ä¤¤¤Î¤Ç¡¢Â礭¤Ê´Ø¿ô¤Î¥³¡¼¥ÉÀ¸À®¤ò¤ä¤ê¤Ë¤¯¤¯¤¹¤ë¡£


Node:V850 Options, Next:, Previous:TMS320C3x/C4x Options, Up:Submodel Options

V850 ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ V850 ¤Î¼ÂÁõÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-mlong-calls
-mno-long-calls
Á´¤Æ¤Î¸Æ½Ð¤·¤ò±ó¤¤(¶á¤¤)¸Æ½Ð¤·¤È¤·¤Æ°·¤¦¡£¸Æ½Ð¤·¤¬±ó¤¤¤ÈÁÛÄꤵ¤ì¤¿¾ì¹ç¡¢GCC ¤Ï¾ï¤Ë¡¢´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¥ì¥¸¥¹¥¿¤Ë¥í¡¼¥É¤·¡¢¤½¤Î¥Ý¥¤¥ó¥¿¤ò·Ðͳ¤·¤¿´ÖÀܸƽФ·¤ò¹Ô¤Ê¤¦¡£
-mno-ep
-mep
¥Ý¥¤¥ó¥¿¤ò ep ¥ì¥¸¥¹¥¿¤Ë¥³¥Ô¡¼¤¹¤ë¤Î¤Ë¡¢Æ±¤¸¥¤¥ó¥Ç¥Ã¥¯¥¹¥Ý¥¤¥ó¥¿¤ò¡¢4²ó°Ê¾å»È¤Ã¤Æ¤¤¤ë´ðËÜ¥Ö¥í¥Ã¥¯¤ÎºÇŬ²½¤ò¹Ô¤Ê¤ï¤Ê¤¤(ºÇŬ²½¤ò¹Ô¤Ê¤¦)¡£ºÇŬ²½¤ò¹Ô¤Ê¤¦¾ì¹ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç -mep ¤¬Í­¸ú¤Ë¤Ê¤ë¡£
-mno-prolog-function
-mprolog-function
´Ø¿ô¤Î¥×¥í¥í¡¼¥°¤È¥¨¥Ô¥í¡¼¥°¤Ç¥ì¥¸¥¹¥¿¤ò¥»¡¼¥Ö¡¿¥ê¥¹¥È¥¢¤¹¤ë¤Î¤Ë¡¢³°Éô´Ø¿ô¤ò»È¤ï¤Ê¤¤(»È¤¦)¡£³°Éô´Ø¿ô¤ÏÃÙ¤¤¤¬¡¢Ê£¿ô¤Î´Ø¿ô¤¬Æ±¤¸¿ô¤Î¥ì¥¸¥¹¥¿¤ò¥»¡¼¥Ö¤¹¤ë¤Ê¤é¡¢¥³¡¼¥É¥µ¥¤¥º¤Ï¾®¤µ¤¯¤Ê¤ë¡£-mprolog-function ¥ª¥×¥·¥ç¥ó¤Ï¡¢ºÇŬ²½¤ò¹Ô¤Ê¤¦¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤Ê¤ë¡£
-mspace
²Äǽ¤Ê¸Â¤ê¥³¡¼¥É¤ò¾®¤µ¤¯¤¹¤ë¤³¤È¤ò»î¤ß¤ë¡£¸½»þÅÀ¤Ç¤Ï¡¢¤³¤ì¤Ï-mep ¥ª¥×¥·¥ç¥ó¤È -mprolog-function ¥ª¥×¥·¥ç¥ó¤ò¥ª¥ó¤Ë¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£
-mtda=n
static ÊÑ¿ô¤Þ¤¿¤Ï¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Î¤¦¤Á¡¢Â礭¤µ¤¬ n ¥Ð¥¤¥È°Ê²¼¤Î¤â¤Î¤ò¡¢ep ¥ì¥¸¥¹¥¿¤¬»Ø¤·¼¨¤¹¡¢Èù¾®¥Ç¡¼¥¿Îΰè¤ËÃÖ¤¯¡£¤³¤ÎÈù¾®¤Ê¥Ç¡¼¥¿Îΰè¤Ï¡¢Á´Éô¤Ç 256 ¥Ð¥¤¥È¤Þ¤ÇÊÝ»ý¤Ç¤­¤ë(¥Ð¥¤¥È»²¾ÈËè¤Ë 128 ¥Ð¥¤¥È¤Ç¤¢¤ë)¡£
-msda=n
static ÊÑ¿ô¤Þ¤¿¤Ï¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Î¤¦¤Á¡¢Â礭¤µ¤¬ n ¥Ð¥¤¥È°Ê²¼¤Î¤â¤Î¤ò gp ¥ì¥¸¥¹¥¿¤¬»Ø¤·¼¨¤¹¡¢¾®¤µ¤Ê¥Ç¡¼¥¿Îΰè¤ËÃÖ¤¯¡£¤³¤Î¾®¤µ¤Ê¥Ç¡¼¥¿Îΰè¤Ë¤Ï¡¢64K¥Ð¥¤¥È¤Þ¤ÇÊÝ»ý¤Ç¤­¤ë¡£
-mzda=n
static ÊÑ¿ô¤Þ¤¿¤Ï¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Î¤¦¤Á¡¢Â礭¤µ¤¬ n ¥Ð¥¤¥È°Ê²¼¤Î¤â¤Î¤ò¥á¥â¥ê¤ÎÀèÆ¬¤Î 32K¥Ð¥¤¥È¤ÎÎΰè¤ËÃÖ¤¯¡£
-mv850
¥¿¡¼¥²¥Ã¥È¥×¥í¥»¥Ã¥µ¤¬ V850 ¤Ç¤¢¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£
-mbig-switch
Â礭¤Ê switch ʸÍѤÎɽ¤ËŬ¤·¤¿¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥¢¥»¥ó¥Ö¥é¤ä¥ê¥ó¥«¤¬¡¢switch ʸÍѤÎɽÆâ¤Îʬ´ôÈϰϤò±Û¤¨¤Æ¤¤¤ë¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¤¿¤È¤­¤Ë¤Î¤ß»È¤¦¤³¤È¡£


Node:ARC Options, Next:, Previous:V850 Options, Up:Submodel Options

ARC ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤¬ ARC ¼ÂÁõÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

-EL
¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥ÉÍѤ˥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-EB
¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥ÉÍѤ˥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£
-mmangle-cpu
CPU ̾¤òÁ´¤Æ¤Î¸ø³«¥·¥ó¥Ü¥ë̾¤ÎÀèÆ¬¤ËÉղ乤롣¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢°Û¤Ê¤ëÌ¿Îá¤È¥ì¥¸¥¹¥¿¥»¥Ã¥ÈÆÃÀ­¤ò»ý¤Ä¿¿ô¤Î ARC ¤ÎÊѼ郎¸ºß¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤Ï°ì¤Ä¤Î CPU ÍѤ˥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥³¡¼¥É¤¬Â¾¤Î CPU ÍѤ˥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥³¡¼¥É¤È¥ê¥ó¥¯¤¹¤ë¤Î¤òËɤ°¡£¡Ö¤Û¤È¤ó¤ÉƱ¤¸¡×¤Ç¤¢¤ëÊѼï¤ò°·¤¦µ¡Ç½¤Ï¸ºß¤·¤Ê¤¤¡£¤³¤ì¤Ï¡¢Á´¤Æ¤«Á´¤¯¤Ê¤·¤«¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¡£
-mcpu=cpu
ARC ¤ÎÊѼï cpu ÍѤΥ³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£¤É¤ÎÊѼ郎¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤«¤Ï¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ë°Í¸¤¹¤ë¡£Á´¤Æ¤ÎÊѼ郎 -mcpu=base ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mtext=text section
-mdata=data section
-mrodata=readonly data section
´Ø¿ô¡¢¥Ç¡¼¥¿¡¢ÆÉ¤ß½Ð¤·ÀìÍѥǡ¼¥¿¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¤½¤ì¤¾¤ì¡¢text section¡¢data section¡¢readonly data section ¤ËÃÖ¤¯¡£¤³¤ì¤Ï¡¢section °À­¤Ç¾å½ñ¤­²Äǽ¤Ç¤¢¤ë¡£See Variable Attributes¡£


Node:NS32K Options, Previous:ARC Options, Up:Submodel Options

NS32K ¥ª¥×¥·¥ç¥ó

°Ê²¼¤Î -m ¥ª¥×¥·¥ç¥ó¤¬ 32000 ¥·¥ê¡¼¥º¸þ¤±¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϡ¢GCC ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó»þ¤Ë32000 ¤Î¤É¤Î·¿¤¬ÁªÂò¤µ¤ì¤¿¤«¤Ë°Í¸¤¹¤ë¡£ºÇ¤â¶¦Ä̤¹¤ëÁªÂò¸þ¤±¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤϰʲ¼¤Ë¼¨¤µ¤ì¤Æ¤¤¤ë¡£

-m32032
-m32032
32032 ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢GCC ¤¬ 32032 ¤ä 32016 ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥àÍѤ˥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤¿¤È¤­¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-m32332
-m32332
32332 ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢GCC ¤¬ 32332 ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥àÍѤ˥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤¿¤È¤­¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-m32532
-m32532
32532 ÍѤνÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢GCC ¤¬ 32532 ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥àÍѤ˥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤¿¤È¤­¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-m32081
ÉâÆ°¾®¿ôÅÀÍѤΠ32081 Ì¿Îá¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï¡¢Á´¤Æ¤Î¥·¥¹¥Æ¥à¤Ç¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-m32381
ÉâÆ°¾®¿ôÅÀÍѤΠ32381 Ì¿Îá¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£¤³¤ì¤Ï -m32081 ¤â´Þ¤à¡£32381 ¤Ï¡¢32332 ¤È 32532 ¤È¤¤¤¦ CPU ¤È¤Î¤ß¸ß´¹¤Ç¤¢¤ë¡£¤³¤ì¤Ï¡¢ pc532-netbsd ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mmulti-add
¾è»»-²Ã»»ÉâÆ°¾®¿ôÅÀÌ¿Îá polyF ¤È dotF ¤òÀ¸À®¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢-m32381 ¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß»ÈÍѤǤ­¤ë¡£¤³¤ì¤é¤ÎÌ¿Îá¤ò»È¤¦¤Ë¤Ï¡¢°ìÈ̤ˤÏÀ­Ç½¤Ë°­¤¤±Æ¶Á¤òÍ¿¤¨¤ë¤è¤¦¤Ê¡¢¥ì¥¸¥¹¥¿³äÅö¤ÎÊѹ¹¤òɬÍפȤ¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ÆÃ¤Ë¾è»»-²Ã»»Ì¿Îá¤òÂçÎ̤˻Ȥ¤¤½¤¦¤Ê¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë¤À¤±Í­¸ú¤Ë¤¹¤Ù¤­¤À¤í¤¦¡£
-mnomulti-add
¾è»»-²Ã»»ÉâÆ°¾®¿ôÅÀÌ¿Îá polyF ¤È dotF ¤òÀ¸À®¤·¤Ê¤¤¡£¤³¤ì¤ÏÁ´¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-msoft-float
ÉâÆ°¾®¿ôÅÀ¥é¥¤¥Ö¥é¥ê¸Æ½Ð¤·¤ò´Þ¤à½ÐÎϤòÀ¸À®¤¹¤ë¡£Ãí°Õ¡£É¬Íפʥ饤¥Ö¥é¥ê¤¬ÍøÍѲÄǽ¤Ç¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¡£
-mnobitfield
¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥ÉÌ¿Îá¤ò»È¤ï¤Ê¤¤¡£´ö¤Ä¤«¤Îµ¡¼ï¤Ç¤Ï¡¢¥·¥Õ¥È±é»»¤È¥Þ¥¹¥¯±é»»¤ò»È¤Ã¤¿¤Û¤¦¤¬¹â®¤Ç¤¢¤ë¡£¤³¤ì¤Ï pc532 ¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mbitfield
¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥ÉÌ¿Îá¤ò»È¤¦¡£¤³¤ì¤Ï¡¢pc532 °Ê³°¤ÎÁ´¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mrtd
°Û¤Ê¤ë´Ø¿ô¸Æ½Ð¤·µ¬Ìó¤ò»È¤¦¡£¤³¤Îµ¬Ìó¤Ç¤Ï¡¢·è¤Þ¤Ã¤¿¿ô¤Î°ú¿ô¤ò¼è¤ë´Ø¿ô¤Ïret num Ì¿Îá¤ÇÌá¤ë¡£¤³¤ÎÌ¿Îá¤ÏÌá¤ëºÝ¤Ë°ú¿ô¤ò¥Ý¥Ã¥×¤¹¤ë¡£

¤³¤Î¸Æ½Ð¤·µ¬Ìó¤ÏÄ̾ï Unix ¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤È¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢Unix ¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¤È¤­¤Ë¤Ï»ÈÍѤǤ­¤Ê¤¤¡£

¤Þ¤¿¡¢²ÄÊÑ¿ô°ú¿ô(printf ¤ò´Þ¤à)¤ò¼è¤ë´Ø¿ôÁ´¤Æ¤Ë´Ø¿ô¥×¥í¥È¥¿¥¤¥×¤òÄ󶡤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤¦¤·¤Ê¤¤¤È¡¢¤½¤ì¤é¤Î´Ø¿ô¤Î¸Æ½Ð¤·¤ËÂФ·¡¢Àµ¤·¤¯¤Ê¤¤¥³¡¼¥É¤¬À¸À®¤µ¤ì¤Æ¤·¤Þ¤¦¡£

¤µ¤é¤Ë¡¢°ú¿ô¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤¹¤®¤ë´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤È½ÅÂç¤Ê¸í¤ê¤Î¤¢¤ë¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¡£(ÉáÄÌ¡¢°ú¿ô¤¬Í¾Ê¬¤Ë¤¢¤ë¾ì¹ç¤ÏÌäÂê¤Ê¤¯Ìµ»ë¤µ¤ì¤ë¡£)

¤³¤Î¥ª¥×¥·¥ç¥ó¤Î̾Á°¤Ï¡¢680x0 ¤Î rtd Ì¿Îᤫ¤é¼è¤Ã¤¿¤â¤Î¤Ç¤¢¤ë¡£

-mregparam
°Û¤Ê¤ë´Ø¿ô¸Æ½Ð¤·µ¬Ìó¤ò»È¤¦¡£¤³¤Îµ¬Ìó¤Ç¤Ï¡¢ÀèÆ¬¤ÎÆó¤Ä¤Î°ú¿ô¤ò¥ì¥¸¥¹¥¿¤ÇÅϤ¹¡£

¤³¤Î¸Æ½Ð¤·µ¬Ìó¤ÏÄ̾ï Unix ¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤È¤Ï¸ß´¹À­¤¬¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢Unix ¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¤È¤­¤Ë¤Ï»ÈÍѤǤ­¤Ê¤¤¡£

-mnoregparam
¤É¤Î°ú¿ô¤â¥ì¥¸¥¹¥¿¤Ç¤ÏÅϤµ¤Ê¤¤¡£¤³¤ì¤ÏÁ´¤Æ¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-msb
¾ï¤Ë¥¼¥í¤¬¥í¡¼¥É¤µ¤ì¤ë¥¤¥ó¥Ç¥Ã¥¯¥¹¡¦¥ì¥¸¥¹¥¿¤È¤·¤Æ sb ¤ò»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤ì¤Ï¡¢pc532-netbsd ¥¿¡¼¥²¥Ã¥È¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£
-mnosb
sb ¥ì¥¸¥¹¥¿¤ÏÍøÍѤǤ­¤Ê¤¤¤«¡¢¤¢¤ë¤¤¤Ï¼Â¹Ô»þ¥·¥¹¥Æ¥à¤Ç¥¼¥í¤Ë½é´ü²½¤µ¤ì¤Ê¤¤¡£¤³¤ì¤Ï¡¢pc532-netbsd °Ê³°¤ÎÁ´¤Æ¤Îµ¡¼ï¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢-mhimem ¤« -fpic ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¾ï¤Ë°ÅÌۤ˴ޤޤì¤ë¡£
-mhimem
ns32000 ¥·¥ê¡¼¥º¤Î¥¢¥É¥ì¥Ã¥·¥ó¥°¥â¡¼¥É¤Î¿¤¯¤Ï¡¢512MB ¤Þ¤Ç¤ÎÊѰ̤ò»È¤Ã¤Æ¤¤¤ë¡£¥¢¥É¥ì¥¹¤¬¡¢512MB ¤ò±Û¤¨¤ë¤È¡¢¥¼¥í¤«¤é¤ÎÊѰ̤ϻȤ¨¤Ê¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢512MB ¤ò±Û¤¨¤Æ¥í¡¼¥É²Äǽ¤Ê¥³¡¼¥É¤òÀ¸À®¤µ¤»¤ë¡£¤³¤ì¤Ï¡¢OS ¤ä ROM ¥³¡¼¥É¤ÇÌò¤ËΩ¤Ä¤À¤í¤¦¡£
-mnohimem
¥³¡¼¥É¤¬¡¢²¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤ÎÀèÆ¬¤Î 512 MB Æâ¤Ë¥í¡¼¥É¤µ¤ì¤ë¤ÈÁÛÄꤹ¤ë¡£¤³¤ì¤Ï¡¢Á´¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤ë¡£


Node:Code Gen Options, Next:, Previous:Submodel Options, Up:Invoking GCC

¥³¡¼¥ÉÀ¸À®µ¬Ìó¤Ë¤Ä¤¤¤Æ¤Î¥ª¥×¥·¥ç¥ó

°Ê²¼¤Ï¡¢µ¡¼ïÆÈΩ¤Î¥ª¥×¥·¥ç¥ó¤Ç¡¢¥³¡¼¥ÉÀ¸À®¤Ë¤ª¤¤¤Æ»È¤ï¤ì¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹µ¬Ìó¤òÀ©¸æ¤¹¤ë¡£

°Ê²¼¤Î¤Û¤È¤ó¤É¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ï¹ÎÄê·Á¤ÈÈÝÄê·Á¤ÎξÊý¤Î·Á¼°¤¬¤¢¤ë¡£-ffoo ¤ÎÈÝÄê·Á¤Ï -fno-foo ¤Ç¤¢¤ë¡£°Ê²¼¤Îɽ¤Ç¤Ï¡¢¤É¤Á¤é¤«°ìÊý¤Î·Á¤·¤«Îóµó¤·¤Æ¤¤¤Ê¤¤¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ê¤¤¤Û¤¦¤òÎóµó¤·¤Æ¤¤¤ë¡£¤â¤¦°ìÊý¤Î·Á¼°¤Ï¡¢no- ¤ò¼è¤ê½ü¤¯¤«¡¢Äɲ乤ì¤ÐÎɤ¤¡£

-fexceptions
Îã³°½èÍý¤òÍ­¸ú¤Ë¤¹¤ë¡£Îã³°¤òÅÁ¤¨¤ë¤Î¤ËɬÍפÊ;ʬ¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¥¿¡¼¥²¥Ã¥È¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î»ö¤Ï¡¢¤¹¤Ù¤Æ¤Î´Ø¿ô¤ËÂФ·¤Æ¥Õ¥ì¡¼¥à¤Î´¬¤­¾å¤²¤òÀ¸À®¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¥Ç¡¼¥¿¥µ¥¤¥º¤¬Ãø¤·¤¯Â礭¤¯¤Ê¤ë¤È¤¤¤¦¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬È¯À¸¤·ÆÀ¤ë¤¬¡¢¼Â¹Ô¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Ê¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢C++ ¤Î¤è¤¦¤Ê¡¢Îã³°½èÍý¤òÉáÄÌɬÍפȤ¹¤ë¸À¸ì¤ËÂФ·¤Æ¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤·¡¢C ¤Î¤è¤¦¤Ê¡¢ÉáÄÌɬÍפȤ·¤Ê¤¤¸À¸ì¤Ë¤Ä¤¤¤Æ¤Ï̵¸ú¤Ë¤¹¤ë¡£¤¿¤À¤·¡¢C++ ¤Ç½ñ¤«¤ì¤¿Îã³°¥Ï¥ó¥É¥é¤ÈÀµ¤·¤¯Áê¸ßºîÍѤ¹¤ëɬÍפΤ¢¤ë C ¤Î¥³¡¼¥É¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£¤Þ¤¿¡¢Îã³°½èÍý¤ò»È¤Ã¤Æ¤¤¤Ê¤¤¡¢¸Å¤¤ C++ ¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò̵¸ú¤Ë¤·¤ÆÎɤ¤¡£
-fpcc-struct-return
¡Ö¾®¤µ¤¤¡× struct ¤È union ¤ÎÃͤò¡¢¥ì¥¸¥¹¥¿¤Ç¤Ï¤Ê¤¯¡¢Â礭¤Ê¤â¤Î¤Î¾ì¹ç¤ÈƱÍͤ˥á¥â¥ê¤ËÆþ¤ì¤ÆÊÖ¤¹¡£¤³¤Îµ¬Ìó¤Ï¸úΨ¤Ç¤ÏÎô¤ë¤¬¡¢GCC ¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥Õ¥¡¥¤¥ë¤È¾¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥Õ¥¡¥¤¥ë¤Î´Ö¤ÇÁê¸ß¤Ë¸Æ¤Ó½Ð¤·¤¬²Äǽ¤Ë¤Ê¤ë¤È¤¤¤¦ÍøÅÀ¤¬¤¢¤ë¡£

¹½Â¤ÂΤò¥á¥â¥ê¤ËÆþ¤ì¤ÆÊÖ¤¹µ¬Ìó¤Î¾ÜºÙ¤Ï¡¢¥¿¡¼¥²¥Ã¥È¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¥Þ¥¯¥í¤Ë°Í¸¤¹¤ë¡£

¾®¤µ¤¤¹½Â¤ÂΡ¢¶¦ÍÑÂΤȤϡ¢¤½¤ÎÂ礭¤µ¤È¥¢¥é¥¤¥ó¥á¥ó¥È¤¬À°¿ô·¿¤Î¤É¤ì¤«¤Ë°ìÃפ¹¤ë¤â¤Î¤Ç¤¢¤ë¡£

-freg-struct-return
struct ¤È union ¤ÎÃͤò²Äǽ¤Ê¾ì¹ç¤Ë¤Ï¥ì¥¸¥¹¥¿¤ÇÊÖ¤¹µ¬Ìó¤ò»È¤¦¡£¤³¤ÎÊýË¡¤Ï¡¢¾®¤µ¤Ê¹½Â¤ÂΤˤĤ¤¤Æ¤Ï -fpcc-struct-return ¤è¤ê¤â¸úΨ¤¬Îɤ¤¡£

-fpcc-struct-return ¤â¤½¤ÎµÕ¤Î -freg-struct-return ¤â»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï¡¢¥¿¡¼¥²¥Ã¥È¤Çɸ½à¤Îµ¬Ì󤬥ǥե©¥ë¥È¤È¤Ê¤ë¡£É¸½à¤Îµ¬Ì󤬤ʤ¤¾ì¹ç¤Ï¡¢GCC ¤¬É¸½à¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¤¢¤ë¥¿¡¼¥²¥Ã¥È¤ò½ü¤¤¤Æ¡¢-fpcc-struct-return ¤ò¥Ç¥Õ¥©¥ë¥È¤È¤¹¤ë¡£GCC ¤¬É¸½à¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢²æ¡¹¤Ëɸ½à¤Îµ¬Ìó¤òÁª¤Ö¸¢Íø¤¬¤¢¤ë¤Î¤Ç¡¢¸úΨ¤ÎÎɤ¤¡¢¥ì¥¸¥¹¥¿¤ÇÊÖ¤¹¤Û¤¦¤òÁª¤Ö¡£

-fshort-enums
enum ·¿¤ËÂФ·¤Æ¡¢¤½¤Î·¿¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤ë²Äǽ¤ÊÈϰϤÎÃͤòɽ¤¹¤Î¤ËɬÍפʥХ¤¥È¿ô¤·¤«³ä¤êÅö¤Æ¤Ê¤¤¡£¤â¤Ã¤ÈÀµ³Î¤Ë¸À¤¨¤Ð¡¢¤½¤Î¾ì¹ç¤Î enum ·¿¤Ï¡¢¤½¤ì¤ò¼ý¤á¤ë¤Î¤Ë½¼Ê¬¤Ç¡¢¤«¤Ä¡¢ºÇ¾®¤ÎÀ°¿ô·¿¤ËƱ¤¸¤Ç¤¢¤ë¡£
-fshort-double
double ¤Î¥µ¥¤¥º¤È¤·¤Æ float ¤ÈƱ¤¸¥µ¥¤¥º¤ò»È¤¦¡£
-fshared-data
¥Ç¡¼¥¿¤ª¤è¤ÓÈóconst ÊÑ¿ô¤ò¡¢¥×¥é¥¤¥Ù¡¼¥È¤Ê¥Ç¡¼¥¿¤È¤¹¤ë¤Î¤Ç¤Ê¤¯¡¢¶¦Í­¥Ç¡¼¥¿¤È¤¹¤ë¤³¤È¤òÍ׵᤹¤ë¡£¤³¤Î¤³¤È¤Ë¤è¤ë°ã¤¤¤Ï¡¢¶¦Í­¥Ç¡¼¥¿¤ÏƱ°ì¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ëÊ£¿ô¤Î¥×¥í¥»¥¹´Ö¤Ç¶¦Í­¤µ¤ì¤ë¤¬¡¢¥×¥é¥¤¥Ù¡¼¥È¤Ê¥Ç¡¼¥¿¤Ï¡¢¥×¥í¥»¥¹Ëè¤Ë¥³¥Ô¡¼¤ò»ý¤Ä¤è¤¦¤Ê¡¢ÆÃÄê¤ÎOS ¤Î¸µ¤Ç¤·¤«°ÕÌ£¤ò»ý¤¿¤Ê¤¤¡£
-fno-common
Èó½é´ü²½¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Ë¤Ä¤¤¤Æ¡¢¥³¥â¥ó¥Ö¥í¥Ã¥¯¤È¤·¤ÆÀ¸À®¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î bss ¥»¥¯¥·¥ç¥ó¤Ë³ä¤êÅö¤Æ¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢Æ±¤¸ÊÑ¿ô¤¬Æó¤Ä¤Î°Û¤Ê¤ë¥³¥ó¥Ñ¥¤¥ëñ°Ì¤Ç(extern ¤Ê¤·¤Ç) Àë¸À¤µ¤ì¤Æ¤¤¤ë¤È¡¢¥ê¥ó¥¯»þ¤Ë¥¨¥é¡¼¤È¤Ê¤ë¡£¤³¤ì¤¬Í£°ìÌò¤ËΩ¤Ä¤Î¤Ï¡¢¾ï¤Ë¤³¤Î¤è¤¦¤Êưºî¤ò¤¹¤ë¾¤Î¥·¥¹¥Æ¥à¤Ç¤Î¥×¥í¥°¥é¥à¤Îưºî¤ò¸¡¾Ú¤·¤¿¤¤¤È¤­¤À¤í¤¦¡£
-fno-ident
#ident À©¸æ»Ò¤ò̵»ë¤¹¤ë¡£
-fno-gnu-linker
¥°¥í¡¼¥Ð¥ë¤Î½é´ü²½»Ò(C++ ¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤ä¥Ç¥¹¥È¥é¥¯¥¿Åù)¤òGNU ¥ê¥ó¥«¤Ç»È¤ï¤ì¤Æ¤¤¤ë·Á¼°¤Ç½ÐÎϤ·¤Ê¤¤(GNU ¥ê¥ó¥«¤¬½é´ü²½»Ò¤ò¼è¤ê°·¤¦É¸½à¤ÎÊýË¡¤È¤Ê¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Î¾ì¹ç)¡£GNU ¥ê¥ó¥«¤Ç¤Ê¤¤¥ê¥ó¥«¤ò»È¤¤¤¿¤¤¤È¤­¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£¤³¤Î¤È¤­¡¢collect2 ¥×¥í¥°¥é¥à¤ò»È¤Ã¤Æ¡¢¥·¥¹¥Æ¥à¤Î¥ê¥ó¥«¤¬¥³¥ó¥¹¥È¥é¥¯¥¿¤È¥Ç¥¹¥È¥é¥¯¥¿¤ò¼è¤ê¹þ¤à¤è¤¦¤Ë¤¹¤ë¤³¤È¤âɬÍפȤʤ롣(collect2 ¤Ï GCC ¤ÎÇÛÉÛʪ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£) collect2 ¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥·¥¹¥Æ¥à¤ËÂФ·¤Æ¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¥É¥é¥¤¥Ð¤Ç¤¢¤ë gcc ¤Ï¼«Æ°Åª¤Ë¤½¤¦¤¹¤ë¤è¤¦¤Ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤ë¡£
-finhibit-size-directive
¥¢¥»¥ó¥Ö¥éÌ¿Îá .size ¤ä¡¢¤¢¤ë¤¤¤Ï´Ø¿ô¤¬ÅÓÃæ¤Çʬ³ä¤µ¤ì¡¢Ê¬³ä¤µ¤ì¤¿Æó¤Ä¤ÎÉôʬ¤¬¥á¥â¥êÃæ¤ÇÎ¥¤ì¤¿¾ì½ê¤ËÃÖ¤«¤ì¤¿¾ì¹ç¤ËÌäÂê¤È¤Ê¤ë¤è¤¦¤Ê¤â¤Î¤ò½ÐÎϤ·¤Ê¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï crtstuff.c ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë»È¤ï¤ì¤ë¡£¤½¤Î¾¤Î¾ì¹ç¤Ë¤ÏɬÍפʤ¤¤Ï¤º¤Ç¤¢¤ë¡£
-fverbose-asm
À¸À®¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥ê¥³¡¼¥É¤Ë;ʬ¤ÎÃí¼á¾ðÊó¤ò²Ã¤¨¤Æ¡¢ÆÉ¤ß¤ä¤¹¤¯¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢°ìÈ̤ˡ¢À¸À®¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥ê¥³¡¼¥É¤ò¼ÂºÝ¤ËÆÉ¤àɬÍפ¬¤¢¤ë¿Í¸þ¤±¤Î¤â¤Î¤Ç¤¢¤ë(¤ª¤½¤é¤¯¡¢ËÜ¥³¥ó¥Ñ¥¤¥é¼«ÂΤò¥Ç¥Ã¥Ð¥°¤¹¤ë¤È¤­¤Ë...)¡£

¥Ç¥Õ¥©¥ë¥È¤Î -fno-verbose-asm ¤Ï¡¢Í¾Ê¬¤Î¾ðÊó¤ò½Ð¤µ¤º¡¢Æó¤Ä¤Î¥¢¥»¥ó¥Ö¥é¥Õ¥¡¥¤¥ë¤òÈæ³Ó¤¹¤ë¤È¤­¤ÏÊØÍø¤Ç¤¢¤ë¡£

-fvolatile
¥Ý¥¤¥ó¥¿¤ò·Ðͳ¤¹¤ëÁ´¤Æ¤Î¥á¥â¥ê»²¾È¤ò´øÈ¯À­¤È¹Í¤¨¤ë¡£
-fvolatile-global
³°Éô¥Ç¡¼¥¿¤È¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ËÂФ¹¤ëÁ´¤Æ¤Î¥á¥â¥ê»²¾È¤ò´øÈ¯À­¤È¹Í¤¨¤ë¡£GCC ¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤â¡¢ÀÅŪ¥Ç¡¼¥¿¹àÌܤ¬´øÈ¯À­¤Ç¤¢¤ë¤È¤Ï¹Í¤¨¤Ê¤¤¡£
-fvolatile-static
ÀÅŪ¥Ç¡¼¥¿¤ËÂФ¹¤ëÁ´¤Æ¤Î¥á¥â¥ê»²¾È¤ò´øÈ¯À­¤È¹Í¤¨¤ë¡£
-fpic
¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ç»È¤¦¤Î¤ËŬ¤·¤¿°ÌÃÖÆÈΩ¥³¡¼¥É(PIC)¤ò¡¢¥¿¡¼¥²¥Ã¥È¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤Ð¡¢À¸À®¤¹¤ë¡£¤³¤ì¤ÇÀ¸À®¤·¤¿¥³¡¼¥É¤Ï¡¢Á´¤Æ¤ÎÄê¿ô¥¢¥É¥ì¥¹¤ò¥°¥í¡¼¥Ð¥ë¥ª¥Õ¥»¥Ã¥Èɽ(GOT)¤òÄ̤·¤Æ¥¢¥¯¥»¥¹¤¹¤ë¡£Æ°Åª¥í¡¼¥À¤¬¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë GOT ¤Î¥¨¥ó¥È¥ê¤ò²ò·è¤¹¤ë(ưŪ¥í¡¼¥À¤Ï GCC ¤Î°ìÉô¤Ç¤Ï¤Ê¤¤¡£¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î°ìÉô¤Ç¤¢¤ë)¡£¥ê¥ó¥¯¤µ¤ì¤¿¼Â¹Ô·Á¼°¤Î GOT ¤ÎÂ礭¤µ¤¬¡¢µ¡¼ï¸ÇÍ­¤ÎºÇÂçÃͤò±Û¤¨¤¿¾ì¹ç¤Ï¡¢-fpic ¤¬Æ°ºî¤·¤Ê¤¤¤È¤¤¤¦¤³¤È¤ò¼¨¤¹¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò¥ê¥ó¥«¤¬½Ð¤¹¡£¤½¤Î¾ì¹ç¡¢Âå¤ï¤ê¤Ë -fPIC ¤ò»È¤Ã¤ÆºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¡£(¤³¤ÎºÇÂçÃͤϡ¢m88k ¤Ç¤Ï 16k¡¢SPARC ¤Ç¤Ï 8k¡¢m68k ¤È RS/6000 ¤Ç¤Ï32k ¤Ç¤¢¤ë¡£386 ¤Ë¤Ï¤³¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£)

°ÌÃÖÆÈΩ¥³¡¼¥É¤ÏÆÃÊ̤ʥµ¥Ý¡¼¥È¤òɬÍפȤ·¡¢¤½¤Î¤¿¤á¤Ë°ìÄê¤Îµ¡¼ï¤Ç¤·¤«Æ°ºî¤·¤Ê¤¤¡£386 ¤Î¾ì¹ç¤Ï¡¢GCC ¤Ï System V ¤Ë¤Ä¤¤¤Æ¤Ï PIC ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤¬¡¢Sun 386i ¤Ë¤Ä¤¤¤Æ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£IBM RS/6000 ¸þ¤±¤ËÀ¸À®¤µ¤ì¤¿¥³¡¼¥É¤Ï¾ï¤Ë°ÌÃÖÆÈΩ¤Ç¤¢¤ë¡£

-fPIC
¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢°ÌÃÖÆÈΩ¥³¡¼¥É¤ò½ÐÎϤ¹¤ë¡£°ÌÃÖÆÈΩ¥³¡¼¥É¤ÏưŪ¥ê¥ó¥¯¤ËŬ¤·¤¿¤â¤Î¤Ç¡¢¥°¥í¡¼¥Ð¥ë¥ª¥Õ¥»¥Ã¥Èɽ¤ÎÂ礭¤µ¤Ë¤Ä¤¤¤Æ¤ÎÀ©¸Â¤¬¤Ê¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢m68k¡¢m88k¡¢SPARC ¤Ç°ã¤¤¤¬½Ð¤ë¡£

°ÌÃÖÆÈΩ¥³¡¼¥É¤ÏÆÃÊ̤ʥµ¥Ý¡¼¥È¤òɬÍפȤ·¡¢¤½¤Î¤¿¤á¤Ë°ìÄê¤Îµ¡¼ï¤Ç¤·¤«Æ°ºî¤·¤Ê¤¤¡£

-ffixed-reg
reg ¤Ç»ØÄꤵ¤ì¤¿¥ì¥¸¥¹¥¿¤ò¸ÇÄê¥ì¥¸¥¹¥¿¤È¤·¤Æ°·¤¦¡£À¸À®¤µ¤ì¤¿¥³¡¼¥É¤Ï·è¤·¤Æ¤½¤Î¥ì¥¸¥¹¥¿¤ò»²¾È¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤(¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤ä¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤ä¤½¤Î¾¤Î·è¤Þ¤Ã¤¿Ìò³ä¤ò»ý¤Ä¤â¤Î¤È¤·¤Æ»²¾È¤¹¤ë¾ì¹ç¤ò½ü¤¯)¡£

reg ¤Ï¥ì¥¸¥¹¥¿¤Î̾Á°¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¼õ¤±ÉÕ¤±¤ë¥ì¥¸¥¹¥¿Ì¾¤Ïµ¡¼ï°Í¸¤Ç¤¢¤ê¡¢¥Þ¥·¥óµ­½Ò¥Þ¥¯¥í¥Õ¥¡¥¤¥ë¤Î REGISTER_NAMES ¤È¤¤¤¦¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤ÏÈÝÄê·Á¤¬¤Ê¤¤¡£»°¤Ä¤ÎÁªÂò»è¤Î¤¦¤Á¤Î°ì¤Ä¤ò»ØÄꤹ¤ë¤«¤é¤Ç¤¢¤ë¡£

-fcall-used-reg
reg ¤Ç»ØÄꤵ¤ì¤¿¥ì¥¸¥¹¥¿¤ò´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë¤è¤êÇ˲õ¤µ¤ì¤ë¡¢³äÅö²Äǽ¤Ê¥ì¥¸¥¹¥¿¤È¤·¤Æ°·¤¦¡£¤³¤Î¥ì¥¸¥¹¥¿¤Ï¡¢°ì»þŪ¤Êºî¶ÈÍÑ¤ä´Ø¿ô¸Æ¤Ó½Ð¤·¤ò±Û¤¨¤ÆÀ¸Â¸¤·¤Ê¤¤ÊÑ¿ô¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿´Ø¿ô¤Ï¡¢¥ì¥¸¥¹¥¿ reg ¤Î¥»¡¼¥Ö¤È¥ê¥¹¥È¥¢¤ò¹Ô¤Ê¤ï¤Ê¤¤¡£

¤³¤Î¥Õ¥é¥°¤ò¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤ä¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤ËÂФ·¤Æ»È¤¦¤Î¤Ï¸í¤ê¤Ç¤¢¤ë¡£¤³¤Î¥Õ¥é¥°¤ò¡¢¤½¤Î¾¤Î¡¢¥Þ¥·¥ó¤Î¼Â¹Ô¥â¥Ç¥ë¤Ë¤ª¤¤¤Æ¸ÇÄꤷ¤¿¹­¤¯ÃΤé¤ì¤Æ¤¤¤ëÌò³ä¤ò»ý¤Ä¥ì¥¸¥¹¥¿¤ËÂФ·¤Æ»È¤¦¤È¡¢Ç˲õŪ¤Ê·ë²Ì¤ò¤â¤¿¤é¤¹¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤ÏÈÝÄê·Á¤¬¤Ê¤¤¡£»°¤Ä¤ÎÁªÂò»è¤Î¤¦¤Á¤Î°ì¤Ä¤ò»ØÄꤹ¤ë¤«¤é¤Ç¤¢¤ë¡£

-fcall-saved-reg
reg ¤È¤¤¤¦Ì¾Á°¤Î¥ì¥¸¥¹¥¿¤ò´Ø¿ô¤Ë¤è¤ê¥»¡¼¥Ö¤µ¤ì¤ë³äÅö²Äǽ¤Ê¥ì¥¸¥¹¥¿¤È¤·¤Æ¼è¤ê°·¤¦¡£°ì»þŪ¤Ê¤â¤Î¤ä¸Æ¤Ó½Ð¤·¤ò±Û¤¨¤ÆÀ¸Â¸¤¹¤ëÊÑ¿ô¤ËÂФ·¤Æ¤â³ä¤êÅö¤Æ¤é¤ì¤ë¡£¤³¤¦¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿´Ø¿ô¤Ï¡¢¤â¤· reg ¤ò»È¤Ã¤Æ¤¤¤ì¤Ð¡¢¤½¤ì¤ò¥»¡¼¥Ö¡¿¥ê¥¹¥È¥¢¤¹¤ë¡£

¤³¤Î¥Õ¥é¥°¤ò¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤ä¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤ËÂФ·¤Æ»È¤¦¤Î¤Ï¸í¤ê¤Ç¤¢¤ë¡£¤³¤Î¥Õ¥é¥°¤ò¡¢¤½¤Î¾¤Î¡¢¥Þ¥·¥ó¤Î¼Â¹Ô¥â¥Ç¥ë¤Ë¤ª¤¤¤Æ¸ÇÄꤷ¤¿¹­¤¯ÃΤé¤ì¤Æ¤¤¤ëÌò³ä¤ò»ý¤Ä¥ì¥¸¥¹¥¿¤ËÂФ·¤Æ»È¤¦¤È¡¢Ç˲õŪ¤Ê·ë²Ì¤ò¤â¤¿¤é¤¹¡£

¤³¤Î¥Õ¥é¥°¤ò´Ø¿ô¤ÎÌá¤êÃͤòÆþ¤ì¤ë¥ì¥¸¥¹¥¿¤ËÂФ·¤Æ»È¤¦¤È¡¢Ê̤μïÎà¤ÎÇ˲õŪ¤Ê·ë²Ì¤Ë¤Ê¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤ÏÈÝÄê·Á¤¬¤Ê¤¤¡£»°¤Ä¤ÎÁªÂò»è¤Î¤¦¤Á¤Î°ì¤Ä¤ò»ØÄꤹ¤ë¤«¤é¤Ç¤¢¤ë¡£

-fpack-struct
¹½Â¤ÂΤΥá¥ó¥Ð¤òÁ´¤Æ·ê¤Î̵¤¤¤è¤¦¤ËµÍ¤á¹þ¤à¡£ÉáÄ̤Ϥ³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤³¤È¤Ï¤Ê¤¤¤À¤í¤¦¡£¥³¡¼¥É¤Î¸úΨ¤¬Íî¤Á¤ë¤·¡¢¹½Â¤ÂÎ¥á¥ó¥Ð¤Î¥ª¥Õ¥»¥Ã¥È¤¬¥·¥¹¥Æ¥à¥é¥¤¥Ö¥é¥ê¤Î¤â¤Î¤È°ìÃפ·¤Ê¤¯¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£
-fcheck-memory-usage
³Æ¥á¥â¥ê»²¾È¤ò¸¡ºº¤¹¤ë¤¿¤á¤Ë;ʬ¤Ê¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£GCC ¤Ï¡¢Checker ¤Î¤è¤¦¤Ê¡¢ÉÔÀµ¤Ê¥á¥â¥ê»²¾È¤ò¸¡ÃΤ¹¤ë¥×¥í¥°¥é¥à¤ËŬ¤·¤¿¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£

ÉáÄ̤ϡ¢¤³¤ÎÁ´¤Æ¤Î¥³¡¼¥É¤ò¤³¤Î¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤«¡¢¤¢¤ë¤¤¤ÏÁ´¤¯ÉÕ¤±¤º¤Ë¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤ÈÉÕ¤±¤Ê¤¤¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤òº®¤¼¤ë¾ì¹ç¤Ï¡¢ÉûºîÍѤ¬¤¢¤ê¡¢¤«¤Ä¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ëÁ´¤Æ¤Î¥³¡¼¥É¤Ï¡¢¤½¤ì¼«¿È¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¤¦¤ÁÉûºîÍѤΤ¢¤ë¤â¤Î(Î㤨¤Ð¡¢read)¤ò»È¤¦¤È¤­¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤½¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ëÌõ¤Ë¤Ï¤¤¤«¤Ê¤¤¤³¤È¤â¤¢¤ë¤À¤í¤¦¡£¤½¤Î¾ì¹ç¤Ï¡¢-fprefix-function-name ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¡¢ÆÉ¼Ô¤Î¥³¡¼¥É¤òÊñ¤ß¹þ¤ß¡¢Â¾¤Î´Ø¿ô¤¬¤¢¤¿¤«¤â-fcheck-memory-usage ¥ª¥×¥·¥ç¥ó¤Ä¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¤«¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤ò GCC ¤ËÍ׵᤹¤ë¡£¤³¤ì¤Ï¡¢¡Ö¥¹¥¿¥Ö¡×¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Æ¹Ô¤Ê¤ï¤ì¤ë¡£¥¹¥¿¥Ö¤Ï¸¡Ãδï¤Ë¤è¤êÄ󶡤µ¤ì¤ë¡£ÆÉ¼Ô¤Î¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¤¢¤é¤æ¤ë´Ø¿ô¤ËÂФ·¤Æ¥¹¥¿¥Ö¤ò¸«¤Ä¤±¤¿¤ê¡¢¹½ÃÛ¤¹¤ë¤³¤È¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤Ï¡¢-fprefix-function-name ¥ª¥×¥·¥ç¥ó¤Ê¤·¤Ç -fcheck-memory-usage ¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¤­¤Ï¡¢¥á¥â¥ê¸¡ºº¤òÍ­¸ú¤Ë¤·¤¿´Ø¿ôÆâ¤Çasm ¤ä __asm__ ¤È¤¤¤¦¥­¡¼¥ï¡¼¥É¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£GCC ¤Ï asm ʸ¤¬¹Ô¤¦¤³¤È¤òÍý²ò¤Ç¤­¤º¡¢¤½¤Î¤¿¤áŬÀڤʥ³¡¼¥É¤¬À¸À®¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢µñÀ䤵¤ì¤ë¡£¤¿¤À¤·¡¢´Ø¿ô°À­no_check_memory_usage ¤òÉÕ¤±¤ë¤È´Ø¿ôÆâ¤Î¥á¥â¥ê¸¡ºº¤¬Ìµ¸ú¤Ë¤Ê¤ê¡¢asm ʸ¤ò¤½¤¦¤¤¤¦´Ø¿ôÆâ¤ËÃÖ¤¯¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£¸¡ºº¤µ¤ì¤¿´Ø¿ôÆâ¤Ç¸¡ººÌµ¤·¤Î´Ø¿ô¤ò¥¤¥ó¥é¥¤¥óŸ³«¤¹¤ë¤Î¤Ïµö¤µ¤ì¤Æ¤¤¤ë¡£¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Ç¤Î¥á¥â¥ê¥¢¥¯¥»¥¹¤Ï¸¡ºº¤µ¤ì¤Ê¤¤¤¬¡¢¤½¤Î·ë²Ì¸¡ºº¤µ¤ì¤ë¡£

ÆÉ¼Ô¤Î asm ʸ¤ò¸¡ººÌµ¤·¤Î¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Ë°Üư¤¹¤ë¤¬¡¢¤½¤ì¤é¤¬¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤¹¤ë¤Ê¤é¡¢¥¤¥ó¥é¥¤¥ó´Ø¿ôÆâ¤Î¥µ¥Ý¡¼¥È¥³¡¼¥É¤Î¸Æ½Ð¤·¤òÄɲ䷤ơ¢Ç¤°Õ¤ÎÆÉ¤ß½Ð¤·¡¢½ñ¤­½Ð¤·¡¢¥³¥Ô¡¼¤¬¹Ô¤ï¤ì¤ë¤³¤È¤ò»Ø¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤é¤Î¸Æ½Ð¤·¤Ï¡¢¾å¤ÇÀâÌÀ¤·¤¿¥¹¥¿¥Ö¤Ç¹Ô¤ï¤ì¤ë¤â¤Î¤Ë»÷¤¿¤â¤Î¤Ë¤Ê¤ë¤À¤í¤¦¡£

-fprefix-function-name
´Ø¿ô̾¤ËÂФ·¤ÆÀ¸À®¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤Ë¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤òÉÕ¤±¤ë¤³¤È¤ò GCC ¤ËÍ׵᤹¤ë¡£¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ï´Ø¿ô¤ÎÄêµÁ¤À¤±¤Ç¤Ê¤¯´Ø¿ô¸Æ¤Ó½Ð¤·Â¦¤Ë¤âÉÕ¤±¤é¤ì¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥óÉÕ¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤È¤³¤Î¥ª¥×¥·¥ç¥ó¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤Ï¥¹¥¿¥Ö¤ò»È¤ï¤Ê¤¤¸Â¤ê¡¢°ì½ï¤Ë¥ê¥ó¥¯¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£

°Ê²¼¤Î¥³¡¼¥É¤ò -fprefix-function-name ÉÕ¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È

extern void bar (int);
void
foo (int a)
{
  return bar (a + 5);
}

GCC ¤Ï¥³¡¼¥É¤¬°Ê²¼¤Î¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£

extern void prefix_bar (int);
void
prefix_foo (int a)
{
  return prefix_bar (a + 5);
}
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï -fcheck-memory-usage ¤È¹ç¤ï¤»¤Æ»È¤¦¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£
-finstrument-functions
´Ø¿ô¤ÎÆþ¤ê¸ý¤È½Ð¸ý¤ËÆÃÊ̽èÍý¸Æ½Ð¤·¤òÀ¸À®¤¹¤ë¡£´Ø¿ôÆþ¤ê¸ýÅÀ¤Îľ¸å¤È´Ø¿ô½Ð¸ýÅÀ¤ÎľÁ°¤Ç¡¢°Ê²¼¤Î¥×¥í¥Õ¥¡¥ê¥ó¥°´Ø¿ô¤¬¸½ºß¤Î´Ø¿ô¤È¤½¤Î¸Æ½Ð¤·Â¦(call site)¤Î¥¢¥É¥ì¥¹¤ò°ú¿ô¤È¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£(¤¤¤¯¤Ä¤«¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢__builtin_return_address ¤Ï¸½ºß¤Î´Ø¿ô¤ò±Û¤¨¤Æ¤Ïưºî¤·¤Ê¤¤¤Î¤Ç¡¢¸Æ½Ð¤·Â¦¾ðÊó¤Ï¤½¤ì°Ê³°¤Î¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°´Ø¿ô¤«¤é¤ÏÍøÍѤǤ­¤Ê¤¤¡£)
void __cyg_profile_func_enter (void *this_fn, void *call_site);
void __cyg_profile_func_exit  (void *this_fn, void *call_site);

°ìÈÖÌܤΰú¿ô¤Ï¡¢¸½ºß¤Î´Ø¿ô¤Î³«»Ï¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£¤³¤ì¤Ï¡¢¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤«¤éÀµ³Î¤Ë¸¡º÷¤Ç¤­¤ë¤â¤Î¤Ç¤¢¤ë¡£

¤³¤ÎÆÃÊ̽èÍý¤Ï¡¢Â¾¤Î´Ø¿ôÆâ¤Ë¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤¿´Ø¿ô¤ËÂФ·¤Æ¤â¹Ô¤ï¤ì¤ë¡£¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¸Æ½Ð¤·¤¬¡¢¤É¤³¤Ç¥¤¥ó¥é¥¤¥ó´Ø¿ô¤ËÆþ¤ê¡¢¤É¤³¤Ç½Ð¤¿¤«¤ò³µÇ°Åª¤Ë¼¨¤¹¡£¤³¤ì¤Ï¡¢¥¤¥ó¥é¥¤¥ó´Ø¿ô¤ËÂФ·¡¢¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤¬²Äǽ¤ÊÈǤ¬ÍøÍѲÄǽ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¤¢¤ë´Ø¿ô¤ò»ÈÍѤ·¤Æ¤¤¤ë¤È¤³¤í¤¬Á´¤Æ¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤ë¤Î¤Ê¤é¡¢¤³¤ì¤Ï¥³¡¼¥É¥µ¥¤¥º¤ò¤µ¤é¤ËÁý¤ä¤¹¤³¤È¤Ë¤Ê¤ë¡£ÆÉ¼Ô¤Î C ¥³¡¼¥É¤Çextern inline ¤ò»ØÄꤹ¤ë¤Ê¤é¡¢¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Î¥¢¥É¥ì¥¹¼èÆÀ²ÄǽÈǤòÄ󶡤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£(²¿¤Ï¤È¤â¤¢¤ì¡¢¤³¤ì¤¬ÉáÄ̤ξì¹ç¤À¤¬¡¢ºÇŬ²½¤Ë¤è¤ê¾ï¤Ë´Ø¿ô¤¬¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤ë¤Ê¤é¡¢±¿¤¬Îɤ±¤ì¤Ð¡¢static ÈǤòÄ󶡤·¤Ê¤¯¤Æ¤âºÑ¤à¤«¤â¤·¤ì¤Ê¤¤¡£)

´Ø¿ô¤Ë°À­ no_instrument_function ¤ò»ØÄꤹ¤ë¤È¡¢¤³¤ÎÆÃÊ̽èÍý¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£¤³¤ì¤ÏÎ㤨¤Ð¡¢¾å¤Ë¼¨¤·¤¿¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°´Ø¿ô¤ä¡¢¹âÍ¥ÀèÅ٤γä¤ê¹þ¤ß¥ë¡¼¥Á¥ó¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°´Ø¿ô¤«¤é°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤Ê¤¤´Ø¿ô(¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥Á¥ó¤¬½ÐÎϤò¤ª¤³¤Ê¤Ã¤¿¤ê¡¢¥á¥â¥ê¤ò³ÎÊݤ¹¤ë¤Ê¤é¡¢¤ª¤½¤é¤¯¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬³ºÅö¤¹¤ë)Åù¤Ë»È¤ï¤ì¤ë¡£

-fstack-check
¥¹¥¿¥Ã¥¯¤Î¶­³¦¤ò±Û¤¨¤Ê¤¤¤³¤È¤ò¸¡¾Ú¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î´Ä¶­¤Ç¤Ï¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤Ù¤­¤À¤í¤¦¡£¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤Î´Ä¶­¤Ç¤ÏÌÇ¿¤Ë»ØÄꤹ¤ëɬÍפ¬¤Ê¤¤¤À¤í¤¦¡£¥¹¥¿¥Ã¥¯¤¬°ì¸Ä¤·¤«¤Ê¤±¤ì¤Ð¡¢¤Û¤ÜÁ´¤Æ¤Î¥·¥¹¥Æ¥à¤Ç¥¹¥¿¥Ã¥¯¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò¼«Æ°Åª¤Ë¸¡½Ð¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£
-fargument-alias
-fargument-noalias
-fargument-noalias-global
²¾°ú¿ô´Ö¤Î°Í¸´Ø·¸¤ª¤è¤Ó²¾°ú¿ô¤È¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤Î°Í¸´Ø·¸¤Î²ÄǽÀ­¤ò»ØÄꤹ¤ë¡£

-fargument-alias ¤Ï¡¢°ú¿ô(²¾°ú¿ô)¤¬¤ª¸ß¤¤¤ËÊÌ̾¤Ë¤Ê¤Ã¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¤³¤È¡¢¤½¤ì¤Ë¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÎÊÌ̾¤Ë¤Ê¤Ã¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£-fargument-noalias ¤Ï°ú¿ô¤Ï¤ª¸ß¤¤¤ËÊÌ̾¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤Ï¤Ê¤¤¤¬¡¢¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÎÊÌ̾¤Ë¤Ê¤Ã¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£-fargument-noaliase-global ¤Ï¡¢°ú¿ô¤Ï¤ª¸ß¤¤¤ËÊÌ̾¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤·¡¢¥°¥í¡¼¥Ð¥ë¥Ç¡¼¥¿¤ÎÊÌ̾¤Ë¤â¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ò»ØÄꤹ¤ë¡£

¤½¤ì¤¾¤ì¤Î¸À¸ì¤Ï¡¢¤½¤Î¸À¸ì¤Îµ¬³Ê¤ÇɬÍפȤµ¤ì¤ë¥ª¥×¥·¥ç¥ó¤Ï¤Ê¤ó¤Ç¤¢¤ì¡¢¼«Æ°Åª¤Ë»È¤¦¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤½¤¦¤¤¤¦¥ª¥×¥·¥ç¥ó¤òÆÉ¼Ô¼«¿È¤¬»È¤¦É¬ÍפϤʤ¤¤Ï¤º¤Ç¤¢¤ë¡£

-fleading-underscore
¤³¤Î¥ª¥×¥·¥ç¥ó¤È¤½¤ÎÈ¿ÂФΥª¥×¥·¥ç¥ó¤Ç¤¢¤ë -fno-leading-underscore ¤Ï¡¢C ¤Î¥·¥ó¥Ü¥ë¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ëÃæ¤Ç¤Îɽ¸½ÊýË¡¤ò¶¯À©Åª¤ËÊѹ¹¤¹¤ë¡£»È¤¤Æ»¤Î°ì¤Ä¤Ï¡¢¸Å¤¤¥¢¥»¥ó¥Ö¥ê¥³¡¼¥É¤È¥ê¥ó¥¯¤¹¤ë¤Î¤ò½õ¤±¤ë¤³¤È¤Ë¤¢¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¤­¤Ï¼«Ê¬¤¬²¿¤ò¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤Î¤«¤òÍý²ò¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¤È¤¤¤¦¤³¤È¡¢¤½¤ì¤ËÁ´¤Æ¤Î¥¿¡¼¥²¥Ã¥È¤¬¤³¤Î¥ª¥×¥·¥ç¥ó¤ò´°Á´¤Ë¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ëÌõ¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤ËÃí°Õ¤·¤ÆÍߤ·¤¤¡£


Node:Environment Variables, Next:, Previous:Code Gen Options, Up:Invoking GCC

GCC ¤Ë±Æ¶Á¤¹¤ë´Ä¶­ÊÑ¿ô

¤³¤ÎÀá¤Ç¤Ï¡¢GCC ¤Îưºî¤Ë´Ø·¸¤¹¤ë´Ä¶­ÊÑ¿ô¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£¤³¤ì¤é¤Î´Ä¶­ÊÑ¿ô¤Î¤¦¤Á¤Î¤¤¤¯¤Ä¤«¤Î»Å»ö¤Ï¡¢¿§¡¹¤Ê¼ïÎà¤Î¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¤È¤­¤Ë»È¤¦¥Ç¥£¥ì¥¯¥È¥ê¤ä¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤¢¤ë¡£¤Þ¤¿¤¤¤¯¤Ä¤«¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë´Ä¶­¤Î¾¤Î¦Ì̤ò»ØÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£

¤Þ¤¿¡¢¸¡º÷¾ì½ê¤ò»ØÄꤹ¤ë¤Î¤Ë -B¡¢-I¡¢-L (see Directory Options)Åù¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤³¤È¤¬½ÐÍè¤ë¤³¤È¤ËÃí°Õ¡£¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢´Ä¶­ÊÑ¿ô¤Ç»ØÄꤵ¤ì¤¿¾ì½ê¤è¤ê¤âÍ¥À褹¤ë¡£¤Þ¤¿¡¢´Ä¶­ÊÑ¿ô¤Ë¤è¤ë»ØÄê¤Ï¡¢GCC ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤¿¾ì½ê¤è¤ê¤âÍ¥À褹¤ë¡£See Driver¡£

LANG
LC_CTYPE
LC_MESSAGES
LC_ALL
¤³¤ì¤é¤Î´Ä¶­ÊÑ¿ô¤Ï¡¢GCC ¤¬¡¢Ãϰ貽(localization)¾ðÊó¤ò¡¢°Û¤Ê¤ë¹ñ¤Î½¬´·¤È¤È¤â¤Ëưºî¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¤è¤¦¤Ë»È¤¦ÊýË¡¤òÀ©¸æ¤¹¤ë¡£GCC ¤Ï¡¢¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¥í¥±¡¼¥ë¡¦¥«¥Æ¥´¥ê LC_TYPE ¤È LC_MESSAGES ¤òÄ´¤Ù¤ë¡£¤³¤ì¤é¤Î¥í¥±¡¼¥ë¡¦¥«¥Æ¥´¥ê¤Ë¤Ï¡¢ÆÉ¼Ô¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëǤ°Õ¤ÎÃͤòÀßÄê¤Ç¤­¤ë¡£ÂåɽŪ¤ÊÃͤϡ¢±Ñ¹ñ(United Kingdom)¤Î±Ñ¸ì¤òɽ¤¹ en_UK ¤Ç¤¢¤ë¡£

´Ä¶­ÊÑ¿ô LC_CTYPE ¤Ï¡¢Ê¸»ú¤ÎʬÎà¤ò»ØÄꤹ¤ë¡£GCC ¤Ï¤³¤ì¤ò»È¤Ã¤Æ¡¢Ê¸»úÎóÃæ¤Îʸ»ú¤Î¶­³¦¤ò·èÄꤹ¤ë¡£¤³¤ì¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥Þ¥ë¥Á¥Ð¥¤¥È¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÇɬÍפˤʤ롣¤³¤ì¤é¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤Ï¡¢Ê¸»ú¤Î¶­³¦¤¬¤ï¤«¤é¤Ê¤¤¤È¡¢Ê¸»úÎó¤Î½ªÎ»¤ä¥¨¥¹¥±¡¼¥×¤È¤·¤Æ²ò¼á¤µ¤ì¤Æ¤·¤Þ¤¦¤è¤¦¤Ê°úÍÑʸ»ú¤ä¥¨¥¹¥±¡¼¥×ʸ»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£

´Ä¶­ÊÑ¿ô LC_MESSAGES ¤Ï¡¢¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤Ç»È¤¦¤Ù¤­¸À¸ì¤ò»ØÄꤹ¤ë¡£

´Ä¶­ÊÑ¿ô LC_ALL ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢LC_CTYPE ¤ÈLC_MESSAGES ¤ÎÃͤò¾å½ñ¤­¤¹¤ë¡£ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢LC_CTYPE ¤È LC_MESSAGES ¤Î¥Ç¥Õ¥©¥ë¥È¤Ï¡¢´Ä¶­ÊÑ¿ô LANG ¤ÎÃͤȤʤ롣¤³¤ì¤é¤Î¤É¤ÎÊÑ¿ô¤âÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢GCC ¤ÏÅÁÅýŪ¤Ê C ¤Î±Ñ¸ì¤Îưºî¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¤¹¤ë¡£

TMPDIR
TMPDIR ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢¤½¤ÎÃͤǰì»þ¥Õ¥¡¥¤¥ë¤òÃÖ¤¯¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤹ¤ë¡£GCC ¤Ï°ì»þ¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤Î°ì¤Ä¤Î¥¹¥Æ¡¼¥¸¤Î½ÐÎϤòÊÝ»ý¤¹¤ë¡£¤½¤ì¤¬¼¡¤Î¥¹¥Æ¡¼¥¸¤ÎÆþÎϤȤ·¤Æ»È¤ï¤ì¤ë¡£Î㤨¤Ð¡¢¥×¥ê¥×¥í¥»¥Ã¥µ¤Î½ÐÎϤϡ¢¥³¥ó¥Ñ¥¤¥éËÜÂÎ¤Ø¤ÎÆþÎϤˤʤ롣
GCC_EXEC_PREFIX
GCC_EXEC_PREFIX ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤ë¥µ¥Ö¥×¥í¥°¥é¥à¤Î̾Á°¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ò»ØÄꤹ¤ë¡£¤³¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ò¥µ¥Ö¥×¥í¥°¥é¥à̾¤ÈÁȤ߹ç¤ï¤»¤ë¤È¤­¤Ë¥¹¥é¥Ã¥·¥å¤ÏÊä¤ï¤ì¤Ê¤¤¤¬¡¢´õ˾¤¹¤ë¤Ê¤é¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ÎºÇ¸å¤Ë¥¹¥é¥Ã¥·¥å¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

GCC ¤¬»ØÄꤵ¤ì¤¿¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¥µ¥Ö¥×¥í¥°¥é¥à¤ò¸«¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿»þ¤Ë¤Ï¡¢¥µ¥Ö¥×¥í¥°¥é¥à¤¬Ä̾ïÃÖ¤«¤ì¤ë¾ì½ê¤òõ¤¹¡£

GCC_EXEC_PREFIX ¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï prefix/lib/gcc-lib/ ¤Ç¤¢¤ê¡¢prefix ¤Ï¡¢configure ¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤·¤¿¤È¤­¤Îprefix ¤ÎÃͤǤ¢¤ë¡£

-B ¤Ç»ØÄꤷ¤¿¤½¤Î¾¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ï¡¢¤³¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤è¤ê¤âÍ¥À褹¤ë¡£

¤³¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ï¡¢¥ê¥ó¥¯»þ¤Ë»È¤ï¤ì¤ë crt0.o ¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤òõ¤¹¤Î¤Ë¤â»È¤ï¤ì¤ë¡£

¤µ¤é¤Ë¡¢¤³¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ï¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤Ù¤­¥Ç¥£¥ì¥¯¥È¥ê¤ò¸«¤Ä¤±¤ë¤È¤­¤ËÊѤï¤Ã¤¿»È¤ï¤ìÊý¤ò¤¹¤ë¡£Ä̾/usr/local/lib/gcc-lib ¤Ç(Àµ³Î¤Ë¤Ï¡¢GCC_INCLUDE_DIR ¤ÎÃͤÇ)»Ï¤Þ¤ë̾Á°¤Îɸ½à¤Î¥Ç¥£¥ì¥¯¥È¥êËè¤Ë¡¢¤½¤Î̾Á°¤Î»Ï¤Þ¤ê¤ò»ØÄꤵ¤ì¤¿¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ËÃÖ¤­´¹¤¨¤Æ¡¢Ê̤Υǥ£¥ì¥¯¥È¥ê̾¤òÀ¸À®¤¹¤ë¡£¤Ä¤Þ¤ê¡¢-Bfoo/ ¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï¡¢ÉáÄ̤ʤé /usr/local/lib/bar ¤òõ¤¹¤È¤³¤í¤ò¡¢foo/bar ¤òõ¤¹¤Î¤Ç¤¢¤ë¡£¤³¤ÎÊ̤Υǥ£¥ì¥¯¥È¥ê¤ÏºÇ½é¤Ë¸¡º÷¤µ¤ì¤ë¡£É¸½à¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬¼¡¤Ë¸¡º÷¤µ¤ì¤ë¡£

COMPILER_PATH
COMPILER_PATH ¤ÎÃͤϥ³¥í¥ó¤Ç¶èÀڤ俥ǥ£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤Ç¤¢¤ê¡¢PATH ¤ËÎɤ¯»÷¤Æ¤¤¤ë¡£GCC ¤Ï¡¢GCC_EXEC_PREFIX ¤ò»È¤Ã¤Æ¥µ¥Ö¥×¥í¥°¥é¥à¤ò¸«¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¡¢¤³¤ì¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¥µ¥Ö¥×¥í¥°¥é¥à¤òõ¤¹¡£
LIBRARY_PATH
LIBRARY_PATH ¤ÎÃͤϥ³¥í¥ó¤Ç¶èÀڤ俥ǥ£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤Ç¤¢¤ê¡¢PATH ¤ËÎɤ¯»÷¤Æ¤¤¤ë¡£¥Í¥¤¥Æ¥£¥Ö¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò¹Ô¤Ê¤Ã¤¿¾ì¹ç¤Ï¡¢GCC ¤Ï¡¢ÆÃÊ̤ʥê¥ó¥«¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¤È¤­¤Ë¡¢GCC_EXEC_PREFIX ¤ò»È¤Ã¤Æ¤â¸«¤Ä¤±¤é¤ì¤Ê¤¤¤È¤­¤Ï¡¢¤³¤Î¤è¤¦¤Ë»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò»È¤¦¡£GCC ¤ò»È¤Ã¤Æ¥ê¥ó¥¯¤ò¹Ô¤Ê¤¦¤È¤­¤â¡¢-l ¤Ç»ØÄꤵ¤ì¤¿Ä̾ï¤Î¥é¥¤¥Ö¥é¥ê¤òõ¤¹¤È¤­¤Ë¡¢¤³¤ì¤é¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò»È¤¦(¤¿¤À¤·¡¢-L ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬¤Þ¤º¸¡º÷¤µ¤ì¤ë)¡£
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
¤³¤ì¤é¤Î´Ä¶­ÊÑ¿ô¤Ï¡¢ÆÃÄê¤Î¸À¸ì¤Ë´ØÍ¿¤¹¤ë¡£³ÆÊÑ¿ô¤ÎÃͤϡ¢PATH ¤Î¤è¤¦¤Ë¡¢¥³¥í¥ó¤Ç¶èÀڤ俥ǥ£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£GCC ¤¬¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òõ¤¹¤È¤­¡¢»ÈÍѤ·¤Æ¤¤¤ë¸À¸ì¸þ¤±¤ÎÊÑ¿ô¤ËÎóµó¤µ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¤éõ¤¹¡£¤³¤ì¤Ï¡¢-I ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¸¡º÷¤Î¸å¤Ç¡¢É¸½à¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¸¡º÷¤ÎÁ°¤Ë¹Ô¤Ê¤ï¤ì¤ë¡£
DEPENDENCIES_OUTPUT
¤³¤ÎÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢¤½¤ÎÃͤ¬ GCC ¤Ë¤è¤ê½èÍý¤µ¤ì¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ë´ð¤Å¤¯¡¢Make ÍѰ͸´Ø·¸¤Î½ÐÎÏÊýË¡¤ò»ØÄꤹ¤ë¡£¤³¤Î½ÐÎÏ¤Ï -M ¥ª¥×¥·¥ç¥ó¤Ë¤è¤ë½ÐÎϤËÎɤ¯»÷¤Æ¤¤¤ë¤¬¡¢ÆÈΩ¤·¤¿¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤµ¤ì¡¢Ä̾ï¤Î¥³¥ó¥Ñ¥¤¥ë·ë²Ì¤ËÄɲ䵤ì¤ë·Á¤Ç½ÐÎϤµ¤ì¤ë¡£

DEPENDENCIES_OUTPUT ¤ÎÃͤÏñ¤Ê¤ë¥Õ¥¡¥¤¥ë̾¤Ç¤âÎɤ¯¡¢¤½¤Î¾ì¹ç¤Ï Make ÍѤΥ롼¥ë¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¤ë¡£Make ¤Î¥¿¡¼¥²¥Ã¥È̾¤Ï¥½¡¼¥¹¥Õ¥¡¥¤¥ë̾¤«¤é¿ä¬¤¹¤ë¡£¤¢¤ë¤¤¤Ï¡¢¤³¤ÎÊÑ¿ô¤ÎÃͤÏfile target ¤È¤¤¤¦·Á¤Ç¤âÎɤ¤¡£¤³¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë file ¤Ë½ñ¤­½Ð¤µ¤ì¤ë¥ë¡¼¥ë¤Ï¡¢¥¿¡¼¥²¥Ã¥È̾¤È¤·¤Ætarget ¤ò»È¤¦¡£

LANG
¤³¤Î´Ä¶­ÊÑ¿ô¤ò»È¤Ã¤Æ¡¢¥í¥±¡¼¥ë¾ðÊó¤ò GCC ¤ËÅϤ¹¡£¤³¤Î¾ðÊó¤Î°ì¤Ä¤Î»È¤¤Êý¤È¤·¤Æ¤Ï¡¢Ê¸»úÄê¿ô¡¢Ê¸»úÎóÄê¿ô¡¢¥³¥á¥ó¥È¤¬ C ¤ä C++ ¤Ç¥Ñ¡¼¥¹¤µ¤ì¤ë¤È¤­¤Ë»È¤¦¤Ù¤­Ê¸»ú¥»¥Ã¥È¤ò·èÄꤹ¤ë¤³¤È¤¬¤¢¤ë¡£GCC ¤ò¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤òµö¤¹¤è¤¦¤Ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤·¤¿¾ì¹ç¤Ï¡¢LANG ¤ÎÃͤȤ·¤Æ°Ê²¼¤Î¤â¤Î¤¬Ç§¼±¤µ¤ì¤ë¡£
C-JIS
JIS ¥³¡¼¥Éʸ»ú¤òǧ¼±¤¹¤ë¡£
C-SJIS
SJIS ¥³¡¼¥Éʸ»ú¤òǧ¼±¤¹¤ë¡£
C-EUCJP
EUCJP ¥³¡¼¥Éʸ»ú¤òǧ¼±¤¹¤ë¡£

LANG ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤ê¡¢¾åµ­°Ê³°¤ÎÃͤˤʤäƤ¤¤ë¾ì¹ç¤Ï¡¢GCC ¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥í¥±¡¼¥ë¤ÇÄêµÁ¤µ¤ì¤ë mblen ¤È mbtowc ¤ò»È¤Ã¤Æ¡¢¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤òǧ¼±¤·ÊÑ´¹¤¹¤ë¡£


Node:Running Protoize, Previous:Environment Variables, Up:Invoking GCC

protoize ¤Î¼Â¹Ô

protoize ¥×¥í¥°¥é¥à¤Ï¡¢GNU C ¤ÎÁªÂòŪ¤ÊÉôʬ¤Ç¤¢¤ë¡£¤³¤ì¤ò»È¤Ã¤Æ¥×¥í¥È¥¿¥¤¥×Àë¸À¤ò¥×¥í¥°¥é¥à¤ËÄɲ乤뤳¤È¤¬¤Ç¤­¡¢°ì¤Ä¤ÎÌÌ¤Ç¥×¥í¥°¥é¥à¤ò ANSI C ¤ËÊÑ´¹¤¹¤ë¡£Ãç´Ö¤Î¥×¥í¥°¥é¥à unprotoize ¤Ï¡¢¤½¤ÎµÕ¤ò¹Ô¤Ê¤¦¡£¸«¤Ä¤«¤Ã¤¿¥×¥í¥È¥¿¥¤¥×Àë¸À¤«¤é°ú¿ô·¿¤ò¼è¤ê½ü¤¯¡£

¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ï¡¢¥³¥Þ¥ó¥É¹Ô°ú¿ô¤È¤·¤Æ°ìÁȤΥ½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤ÎÆó¤Ä¤ÎÊÑ´¹¥×¥í¥°¥é¥à¤Ï¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤É¤ó¤Ê´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¤³¤È¤«¤é»Ï¤á¤ë¡£foo ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ½¸¤á¤é¤ì¤¿¾ðÊóÍÕ¡¢foo.X ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤Ë¥»¡¼¥Ö¤µ¤ì¤ë¡£

¤³¤ÎÁöºº¤Î¸å¤Ë¼ÂºÝ¤ÎÊÑ´¹¤ò¹Ô¤Ê¤¦¡£»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ÏÁ´¤ÆÊÑ´¹Âоݤλñ³Ê¤ò»ý¤Ä¡£¤½¤ì¤«¤é¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë(¥½¡¼¥¹¤Ç¤¢¤ìñ¤Ê¤ë¥Ø¥Ã¥À¤Ç¤¢¤ì)¤âƱÍͤ˻ñ³Ê¤ò»ý¤Ä¡£

¤·¤«¤·¡¢»ñ³Ê¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤¬Á´¤ÆÊÑ´¹¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢protoize ¤È unprotoize ¤Ï¡¢¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥½¡¼¥¹¤È¥Ø¥Ã¥À¤À¤±¤òÊÑ´¹¤¹¤ë¡£ÊÑ´¹¤¹¤Ù¤­¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ë¤Ë¤Ï¡¢-d directory ¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤ÐÎɤ¤¡£¤Þ¤¿¡¢ÆÃÄê¤Î¥Õ¥¡¥¤¥ë¤ò½ü³°¤¹¤ë¤Ë¤Ï¡¢-x file ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¡£¥Õ¥¡¥¤¥ë¤Ï¡¢»ñ³Ê¤ò»ý¤Á¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤¬»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê̾¤Î°ì¤Ä¤Ë¥Þ¥Ã¥Á¤·¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î̾Á°¤¬½ü³°¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢ÊÑ´¹¤µ¤ì¤ë¡£

protoize ¤¬¹Ô¤Ê¤¦´ðËÜŪ¤ÊÊÑ´¹¤Ï¡¢¤Û¤È¤ó¤É¤Î´Ø¿ôÄêµÁ¤È´Ø¿ô¤ÎÀë¸À¤ò¡¢°ú¿ô¤Î·¿¤ò»ØÄꤹ¤ë¤è¤¦¤Ë½ñ¤­´¹¤¨¤ë¤³¤È¤Ç¤¢¤ë¡£½ñ¤­´¹¤¨¤¬¹Ô¤Ê¤ï¤ì¤Ê¤¤¤Î¤Ï¡¢varargs ´Ø¿ô¤À¤±¤Ç¤¢¤ë¡£

protoize ¤Ï¥ª¥×¥·¥ç¥ó¤Ç¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤Ë¥×¥í¥È¥¿¥¤¥×Àë¸À¤ò¤Þ¤È¤á¤ÆÁÞÆþ¤·¡¢´Ø¿ô¤ÎÄêµÁ¤ÎÁ°¤Ë¸½¤ì¤ë¸Æ¤Ó½Ð¤·¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¡£¤¢¤ë¤¤¤Ï¡¢Ì¤ÄêµÁ¤Î´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ë¥Ö¥í¥Ã¥¯Æâ¤Ç¥Ö¥í¥Ã¥¯¥¹¥³¡¼¥×¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤òÁÞÆþ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£

unprotoize ¤¬¹Ô¤Ê¤¦´ðËÜŪ¤ÊÊÑ´¹¤Ï¡¢¤Û¤È¤ó¤É¤Î´Ø¿ô¤ÎÀë¸À¤«¤é¡¢°ú¿ô¤Î·¿¤ò¼è¤ê½ü¤¯¤è¤¦¤Ë½ñ¤­´¹¤¨¤ë¤³¤È¤È´Ø¿ôÄêµÁ¤ò ANSI °ÊÁ°¤Î¸Å¤¤·Á¼°¤Ë½ñ¤­´¹¤¨¤ë¤³¤È¤Ç¤¢¤ë¡£

¤É¤Á¤é¤ÎÊÑ´¹¥×¥í¥°¥é¥à¤â¡¢ÊÑ´¹ÉÔ²Äǽ¤Ê´Ø¿ô¤ÎÀë¸À¤äÄêµÁ¤¬¤¢¤ë¤È·Ù¹ð¤ò½Ð¤¹¡£-q ¤ò»ØÄꤹ¤ë¤È¡¢¤³¤Î·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤Ç¤­¤ë¡£

protoize ¤ä unprotoize ¤«¤é¤Î½ÐÎϤϡ¢¸µ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤òÃÖ¤­´¹¤¨¤ë¡£¸µ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ï¡¢.save ¤Ç½ª¤ï¤ë¥Õ¥¡¥¤¥ë̾¤ËÃÖ¤­´¹¤¨¤é¤ì¤ë¡£´û¤Ë .save ¤¬¤Ä¤¤¤¿¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤ì¤Ð¡¢Êѹ¹Á°¤Î¥Õ¥¡¥¤¥ë¤Ïñ¤Ë¼Î¤Æ¤é¤ì¤ë¡£

protoize ¤È unprotoize ¤Ï¤É¤Á¤é¤â¡¢GCC ¼«¿È¤Ë°Í¸¤·¤Æ¤¤¤ë¡£GCC ¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥à¤òÁöºº¤·¡¢´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ò½¸¤á¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢GCC ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤Ê¤¤¤È¡¢¤É¤Á¤é¤Î¥×¥í¥°¥é¥à¤âưºî¤·¤Ê¤¤¡£

°Ê²¼¤Ë¡¢protoize ¤È unprotoize ¤Ç»È¤¨¤ë¥ª¥×¥·¥ç¥ó¤Îɽ¤ò¼¨¤¹¡£¤É¤Î¥ª¥×¥·¥ç¥ó¤â¡¢ÆÃ¤Ë½Ò¤Ù¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢¤É¤Á¤é¤Î¥×¥í¥°¥é¥à¤Ç¤â»È¤¨¤ë¡£

-B directory
¥Õ¥¡¥¤¥ë SYSCALLS.c.X ¤ò¡¢Ä̾ï¤Î¥Ç¥£¥ì¥¯¥È¥ê(ÉáÄ̤Ï/usr/local/lib)¤ÎÂå¤ï¤ê¤Ë¡¢directory ¤«¤éõ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢É¸½à¤Î¥·¥¹¥Æ¥à´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Î¥×¥í¥È¥¿¥¤¥×¾ðÊ󤬯þ¤Ã¤Æ¤¤¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï protoize ¤Ë¤À¤±Å¬ÍѤµ¤ì¤ë¡£
-c compilation-options
compilation-options ¤ò¡¢gcc ¤ò¼Â¹Ô¤·¤Æ .X ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤È¤­¤Î¥ª¥×¥·¥ç¥ó¤È¤·¤Æ»È¤¦¡£¤µ¤é¤ËÆÃÊ̤ʥª¥×¥·¥ç¥ó -aux-info ¤¬¾ï¤ËÅϤµ¤ì¡¢gcc ¤Ë .X ¥Õ¥¡¥¤¥ë¤ò½ñ¤­½Ð¤¹¤³¤È¤ò»Ø¼¨¤¹¤ë¡£

¥³¥ó¥Ñ¥¤¥ëÍѤΥª¥×¥·¥ç¥ó·²¤Ï¡¢°ì¸Ä¤Î°ú¿ô¤È¤·¤Æ protoize ¤äunprotoize ¤ËÍ¿¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¡£gcc ¤Î¥ª¥×¥·¥ç¥ó¤òÊ£¿ô»ØÄꤷ¤¿¤¤¤È¤­¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó·²Á´ÂΤò°úÍÑÉä¤Ç°Ï¤ó¤Ç¡¢¥·¥§¥ë¤Ë°ì¸Ä¤Î°ú¿ô¤Ë¸«¤¨¤ë¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

»ÈÍѤǤ­¤Ê¤¤ gcc ¤ÎÆÃÄê¤Î¥ª¥×¥·¥ç¥ó¤¬¤¤¤¯¤Ä¤«¤¢¤ë¡£¤½¤ì¤ò»È¤¦¤È½ÐÎϤμïÎबÀµ¤·¤¯¤Ê¤¯¤Ê¤ë¡£¤½¤Î¥ª¥×¥·¥ç¥ó¤È¤Ï¡¢-g¡¢-O¡¢-c¡¢-S¡¢-o ¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ò compilation-options ¤ËÆþ¤ì¤ë¤È¡¢¤½¤ì¤Ï̵»ë¤µ¤ì¤ë¡£

-C
¥Õ¥¡¥¤¥ë̾¤¬ .c ¤Ç¤Ï¤Ê¤¯ .C ¤Ç½ª¤ï¤ë¤è¤¦¤Ë¤¹¤ë¡£¤³¤ì¤Ï¡¢C ¤Î¥×¥í¥°¥é¥à¤ò C++ ¤ËÊÑ´¹¤¹¤ë¤È¤­¤Ë»È¤¨¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï protoize ¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¡£
-g
ÌÀ¼¨Åª¤Ê¥°¥í¡¼¥Ð¥ëÀë¸À¤òÄɲ乤롣¤³¤ì¤Ï¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Æ¤Ï¤¤¤ë¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤´Ø¿ô¤Ë¤Ä¤¤¤Æ¡¢¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤Ë¤½¤Î´Ø¿ô¤ÎÌÀ¼¨Åª¤ÊÀë¸À¤òÁÞÆþ¤¹¤ë¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¤³¤ÎÀë¸À¤Ï¡¢Àë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤´Ø¿ô¤Ø¤Î¸Æ¤Ó½Ð¤·¤ò´Þ¤àºÇ½é¤Î´Ø¿ôÄêµÁ¤è¤ê¤âÁ°¤ËÃÖ¤«¤ì¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï protoize ¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¡£
-i string
¸Å¤¤·Á¼°¤Î²¾°ú¿ôÀë¸À¤òʸ»úÎó string ¤ò»È¤Ã¤Æ»ú²¼¤²¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï protoize ¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¡£

unprotoize ¤Ï¡¢´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×·Á¼°¤ÎÄêµÁ¤ò¸Å¤¤·Á¼°¤Î´Ø¿ôÄêµÁ¤ËÊÑ´¹¤¹¤ë¡£¸Å¤¤·Á¼°¤Ç¤Ï¡¢°ú¿ô¤Ï°ú¿ô¥ê¥¹¥È¤ÈºÇ½é¤Î { ¤Î´Ö¤ÇÀë¸À¤µ¤ì¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢unprotoize ¤Ï¶õÇò5¸Ä¤Ç¥¤¥ó¥Ç¥ó¥È¤¹¤ë¡£Âå¤ï¤ê¤Ë¶õÇò°ì¸Ä¤Ç¥¤¥ó¥Ç¥ó¥È¤·¤¿¤¤¾ì¹ç¤Ï¡¢-i " " ¤È¤¹¤ë¡£

-k
.X ¥Õ¥¡¥¤¥ë¤òÊݸ¤¹¤ë¡£ÉáÄ̤ϡ¢ÊÑ´¹¤¬½ª¤ï¤Ã¤¿¸å¤Ëºï½ü¤µ¤ì¤ë¡£
-l
ÌÀ¼¨Åª¤Ê¥í¡¼¥«¥ë¤ÎÀë¸À¤òÄɲ乤롣protoize ¤Ë -l ¤ò»ØÄꤹ¤ë¤È¡¢Àë¸À̵¤·¤Ç´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¥Ö¥í¥Ã¥¯Ëè¤Ë¤½¤Î´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤òÁÞÆþ¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢protoize ¤Ç¤À¤±»È¤¨¤ë¡£
-n
¼ÂºÝ¤ÎÊѹ¹¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢-n ¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¹Ô¤Ê¤ï¤ì¤¿¤Ç¤¢¤í¤¦ÊÑ´¹¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òɽ¼¨¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£
-N
.save ¥Õ¥¡¥¤¥ë¤òºî¤é¤Ê¤¤¡£¸µ¤Î¥Õ¥¡¥¤¥ëñ¤Ëºï½ü¤µ¤ì¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÃí°Õ¤·¤Æ»È¤¦¤³¤È¡£
-p program
program ¤È¤¤¤¦¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ»È¤¦¡£ÉáÄÌ¤Ï gcc ¤È¤¤¤¦Ì¾Á°¤¬»È¤ï¤ì¤ë¡£
-q
ÌۤäƻŻö¤ò¤¹¤ë¡£¤Û¤È¤ó¤É¤Î·Ù¹ð¤¬Í޻ߤµ¤ì¤ë¡£
-v
gcc ¤Î -v ¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤¹¤ë¡£

¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¤¦¤Á¤Î°ì¤Ä¤À¤±ÆÃÊ̤ʥ³¥ó¥Ñ¥¤¥é¥ª¥×¥·¥ç¥ó¤òɬÍפȤ¹¤ë¾ì¹ç¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë .X ¥Õ¥¡¥¤¥ë¤òÆÃÊ̤ËÀ¸À®¤¹¤ëɬÍפ¬¤¢¤ë¡£¤½¤ì¤Ë¤Ï¡¢¤½¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢gcc ¤ËŬÀڤʥª¥×¥·¥ç¥ó¤È -aux-info¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¼Â¹Ô¤¹¤ë¡£¤½¤Î¸å¡¢protoize ¤òÁ´¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¼Â¹Ô¤¹¤ë¡£protoize ¤Ï´û¤Ë¸ºß¤¹¤ë .X ¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ¹¤ë¡£¤½¤ì¤¬¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤è¤ê¿·¤·¤¤¤«¤é¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£

gcc -Dfoo=bar file1.c -aux-info
protoize *.c

protoize ¥³¥Þ¥ó¥É¤Î¤½¤Î¾¤Î»È¤¤Êý¤Î¾ì¹ç¤Ï¡¢ÆÃÊ̤ʥե¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ë¡£¤³¤ì¤Ï¡¢.X ¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ç¤âɬÍפǤ¢¤ë¡£¤½¤¦¤·¤Æ¤ª¤«¤Ê¤¤¤È¡¢ÊÑ´¹¤µ¤ì¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

protoize ¤ò¤¦¤Þ¤¯»È¤¤¤³¤Ê¤¹¤¿¤á¤Î¤µ¤é¤Ê¤ë¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢See Protoize Caveats.

°Ê²¼¤Î¾ðÊó¤Î¤Û¤È¤ó¤É¤Ï¡¢¸Å¤¤¤â¤Î¤Ç¡¢EGCS ¤Î¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Æ¤¤¤ë¡£Îò»ËŪ¤Ê»²¾ÈÌÜŪ¤Ç¤Î¤ß¤³¤³¤ËÄ󶡤¹¤ë¡£


Node:Installation, Next:, Previous:Invoking GCC, Up:Top

GNU CC ¤Î¥¤¥ó¥¹¥È¡¼¥ë

¤³¤³¤Ç¤Ï¡¢GNU CC ¤ò GNU ¥·¥¹¥Æ¥à¡¢¤¢¤ë¤¤¤Ï Unix ¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤¿¤á¤Î¼ê½ç¤òÀâÌÀ¤¹¤ë¡£VMS ¤Î¾ì¹ç¤Ï¡¢VMS Install ¤ò»²¾È¤Î¤³¤È¡£¤³¤ÎÀá¤Ç¤Ï¡¢¥½¡¼¥¹¤ÎÃÖ¤«¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤Ê¤¦¤³¤È¤ò²¾Äꤹ¤ë¡£¥½¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤È¤ÏÊ̤Υǥ£¥ì¥¯¥È¥ê¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢Other Dir ¤ò»²¾È¤Î¤³¤È¡£

MSDOS ¤Ç¤Ï¡¢GNU C ¼«¿È¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£GNU C ¼«¿È°Ê³°¤Î MSDOS ¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢´°Á´¤Ê DJGPP ¥Ñ¥Ã¥±¡¼¥¸¤òÆþ¼ê¤¹¤ëɬÍפ¬¤¢¤ë¡£DJGPP ¤Ï¡¢¥½¡¼¥¹¤À¤±¤Ç¤Ê¤¯¥Ð¥¤¥Ê¥ê¤ò´Þ¤ó¤Ç¤ª¤ê¡¢¤µ¤é¤Ë¾¤ËɬÍפʥġ¼¥ë¤ä¥é¥¤¥Ö¥é¥ê¤òÁ´¤Æ´Þ¤ó¤Ç¤¤¤ë¡£

  1. °ÊÁ°¤Ë¡¢Ê̤Υ¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¸þ¤±¤Ë¡¢Æ±¤¸¥Ç¥£¥ì¥¯¥È¥ê¤Ç GNU CC ¤ò¹½ÃÛ¤·¤¿¤³¤È¤¬¤¢¤ë¤Ê¤é¡¢make distclean ¤ò¼Â¹Ô¤·¤ÆÀµ¤·¤¯¤Ê¤¤²ÄǽÀ­¤Î¤¢¤ë¥Õ¥¡¥¤¥ë¤òÁ´¤Æ¾Ã¤¹¤è¤¦¤Ë¤¹¤ë¡£¤³¤Î½èÍý¤Ç¾Ã¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î°ì¤Ä¤Ë Makefile ¤¬¤¢¤ë¡£make distclean ¤ò¼Â¹Ô¤·¤Æ¡¢Makefile ¤¬Â¸ºß¤·¤Ê¤¤¤È¤¤¤¦¥¨¥é¡¼¤¬½Ð¤¿¤é¡¢¶²¤é¤¯¡¢¤¹¤Ç¤Ë¥Õ¥¡¥¤¥ë¤Î¾Ãµî¤¬Å¬Àڤ˹Ԥʤï¤ì¤Æ¤¤¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
  2. System V ¥ê¥ê¡¼¥¹4 ¤Ç¤Ï¡¢PATH ¤Ç¡¢É¬¤º /usr/bin ¤¬/usr/ucb¤ÎÁ°¤ËÍè¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¡£/usr/ucb ¤Ë¤¢¤ë cc ¤Ï¡¢¥Ð¥°¤¬¤¢¤ë¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¡£
  3. ¥Ñ¡¼¥¶À¸À®¥×¥í¥°¥é¥à¤Ç¤¢¤ë Bison ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¡£(Bison ¤Î½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë c-parse.c ¤È cexp.c ¤¬c-parse.y ¤È cexp.y ¤è¤ê¤â¿·¤·¤¯¡¢.y ¥Õ¥¡¥¤¥ë¤òÊѹ¹¤¹¤ëͽÄ꤬¤Ê¤±¤ì¤Ð¡¢¤³¤ì¤ÏɬÍפʤ¤¡£)

    "Sept 8, 1998" ¤è¤ê¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î Bison ¤Ï¡¢c-parse.c ¤òÀµ¤·¤¯À¸À®¤Ç¤­¤Ê¤¤¡£

  4. GNU CC ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤È¤·¤Æ¡¢¥·¥¹¥Æ¥àɸ½à¤Î¥Ä¡¼¥ë¤ÎÂå¤ï¤ê¤Ë¾¤Î GNU ¥Ä¡¼¥ë(GAS ¤ä GNU ¥ê¥ó¥«Åù)¤òɬÍפȤ¹¤ë¤â¤Î¤òÁª¤ó¤À¾ì¹ç¡¢¤½¤ÎɬÍפʥġ¼¥ë¤ò¹½Ãۥǥ£¥ì¥¯¥È¥ê¤Ë as¡¢ld Åù¤ÎŬÀÚ¤Ê̾Á°¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢GNU CC ¤¬ enquire ¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤ËŬÀڤʥġ¼¥ë¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£

    ¥·¥¹¥Æ¥àɸ½à¤Î¥Ä¡¼¥ë¤è¤ê¤âÀè¤ËÍè¤ë¤è¤¦¤ËÀßÄꤷ¤¿¤¦¤¨¤Ç¡¢°ú¤­Â³¤¯¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤Ê¤¦¤³¤È¤â¤Ç¤­¤ë¡£

  5. ¥Û¥¹¥È¡¢¹½ÃÛ¤½¤ì¤Ë¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£¤³¤ì¤Ï¡¢configure ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤µ¤»¤ë¤È¤­¤Ë¹Ô¤Ê¤¦¡£

    ¥Ó¥ë¥É¥Þ¥·¥ó¤È¤Ï¡¢ÆÉ¼Ô¤¬»È¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤¢¤ê¡¢¥Û¥¹¥È¥Þ¥·¥ó¤È¤Ï¡¢¤Ç¤­¤¿¥³¥ó¥Ñ¥¤¥é¤ò¼Â¹Ô¤µ¤»¤¿¤¤¥·¥¹¥Æ¥à(ÉáÄ̤ϥӥë¥É¥Þ¥·¥ó)¤Ç¤¢¤ê¡¢¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤È¤Ï¤½¤ì¸þ¤±¤Ë¥³¥ó¥Ñ¥¤¥é¤Ë¥³¡¼¥É¤òÀ¸À®¤µ¤»¤¿¤¤¥·¥¹¥Æ¥à¤Î¤³¤È¤Ç¤¢¤ë¡£

    ¥³¥ó¥Ñ¥¤¥é¼«¿È¤¬Æ°ºî¤¹¤ë¥Þ¥·¥ó¸þ¤±¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¥³¥ó¥Ñ¥¤¥é(¥Í¥¤¥Æ¥£¥Ö¥³¥ó¥Ñ¥¤¥é)¤ò¹½ÃÛ¤¹¤ë¾ì¹ç¤Ï¡¢ÉáÄÌ¤Ï configure ¤Ë²¿¤â°ú¿ô¤ò»ØÄꤹ¤ëɬÍפϤʤ¤¡£µ¡¼ï¤ò¿ä¬¤·¡¢¤½¤ì¤ò¹½ÃÛ¥Þ¥·¥ó¤ª¤è¤Ó¥Û¥¹¥È¥Þ¥·¥ó¡¢¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤È¤·¤Æ»È¤¦¡£¤³¤Î¤¿¤á¡¢configure ¤¬º£¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò¿ä¬¤Ç¤­¤Ê¤«¤Ã¤¿¤ê¡¢¿ä¬¤¬´Ö°ã¤Ã¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢¥Í¥¤¥Æ¥£¥Ö¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¤È¤­¤Ë¤Ï¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò»ØÄꤹ¤ëɬÍפ¬¤Ê¤¤¡£

    ¿ä¬¤¬¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¾ì¹ç¤Ï¡¢¹½ÃÛ¥Þ¥·¥ó¤Î ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó̾ ¤ò --host ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¡£¥Û¥¹¥È¤È¥¿¡¼¥²¥Ã¥È¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¥Û¥¹¥È¥Þ¥·¥ó¤ÈƱ¤¸¤Ë¤Ê¤ë¡£(¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¾ì¹ç¤Ï¡¢Cross-Compiler¡£)

    °Ê²¼¤ËÎã¤ò¼¨¤¹¡£

    ./configure --host=sparc-sun-sunos4.1
    

    ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó̾¤Ï¡¢Àµµ¬Ì¾¤Ç¤â¾Êά·Á¤Ç¤âÎɤ¤¡£

    ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ÎÀµµ¬Ì¾¤Ï»°¤Ä¤ÎÉôʬ¤ò¥À¥Ã¥·¥å¤Ç¶èÀڤ俤â¤Î¤«¤é¤Ê¤ë¡£cpu-company-system ¤È¤¤¤¦·Á¼°¤Ë¤Ê¤ë¡£(»°¤Ä¤ÎÉôʬ¤Ï¤µ¤é¤Ë¤½¤ÎÃæ¤Ë¥À¥Ã¥·¥å¤ò´Þ¤ó¤Ç¤âÎɤ¤¡£configure ¤Ï¡¢¤É¤Î¥À¥Ã¥·¥å¤¬¤É¤ÎÌò³ä¤ò²Ì¤¿¤¹¤«¤ò¶èÊ̤Ǥ­¤ë¡£) Î㤨¤Ð¡¢m68k-sun-sunos4.1 ¤Ï Sun 3 ¤ò»ØÄꤹ¤ë¡£

    ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Î°ìÉô¤ò¥Ë¥Ã¥¯¥Í¡¼¥à¤Þ¤¿¤ÏÊÌ̾¤ÇÃÖ¤­´¹¤¨¤ë¤³¤È¤â¤Ç¤­¤ë¡£Î㤨¤Ð¡¢sun3 ¤Ï m68k-sun ¤òɽ¤¹¤Î¤Ç¡¢sun3-sunos4.1 ¤È¤·¤Æ¤â Sun 3 ¤ò»ØÄꤷ¤¿¤³¤È¤Ë¤Ê¤ë¡£¤³¤ì¤ò¤µ¤é¤Ë´Êñ¤Ë¤·¤Æ sun3-sunos ¤È¤·¤Æ¤âÎɤ¤¡£¤Ê¤¼¤Ê¤é¡¢SunOS ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤¬¥Ð¡¼¥¸¥ç¥ó 4 ¤Ç¤¢¤ë¤È²¾Äꤵ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£

    ¥·¥¹¥Æ¥à¥¿¥¤¥×¤Î¤É¤ì¤Ë¤Ç¤â¡¢¤½¤·¤Æ CPU ¥¿¥¤¥×¤Î´ö¤Ä¤«¤Ë¤Ï¤½¤Î¸å¤Ë¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ÂçÉôʬ¤Î¾ì¹ç¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó¤Ï´Ø·¸¤Ê¤¯¡¢Ìµ»ë¤µ¤ì¤ë¡£¤³¤Î¤¿¤á¡¢ÃΤäƤ¤¤ë¾ì¹ç¤Ë¤Ï¥Ð¡¼¥¸¥ç¥ó¤ò»ØÄꤷ¤Æ¤âÎɤ¤¡£

    ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó̾¤Î°ìÍ÷¤È¿¤¯¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤ÎÃí°Õ½ñ¤­¤Ë¤Ä¤¤¤Æ¤Ï¡¢Configurations ¤ò»²¾È¤Î¤³¤È¡£

  6. configure ¤ò¼Â¹Ô¤¹¤ë¤È¤­¡¢¥Ï¡¼¥É¥¦¥§¥¢¤È¥½¥Õ¥È¥¦¥§¥¢¤òµ­½Ò¤¹¤ëÆÃÄê¤Î¥ª¥×¥·¥ç¥ó¤òÄɲäǻØÄꤹ¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Î°ìÉô¤òÆÈΩ¤Ë»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤½¤ì¤Ï¡¢--with-gnu-as¡¢--with-gnu-ld¡¢--with-stabs¡¢--nfp ¤Ç¤¢¤ë¡£
    --with-gnu-as
    GNU CC ¤ò GNU ¥¢¥»¥ó¥Ö¥é(GAS) ¤È¶¦¤Ë»È¤¦¤Ê¤é, configure ¤Î¼Â¹Ô»þ¤Ë --with-gnu-as ¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤½¤Î»Ý¤òÀë¸À¤¹¤ëɬÍפ¬¤¢¤ë¡£

    ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤â¡¢GAS ¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡£GNU CC ¤Î½ÐÎϤò GAS ¤Ç½èÍý¤Ç¤­¤ë¤è¤¦¤Ë½¤Àµ¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£GAS ¤Î¹½Ãۤȥ¤¥ó¥¹¥È¡¼¥ë¤ÏÆÉ¼Ô¤ÎÀÕǤ¤Ç¤¢¤ë¡£

    µÕ¤Ë¡¢GAS ¤ò»È¤¦¤³¤È¤ò´õ˾¤»¤º¡¢¹½ÃÛ»þ¤Ë --with-gnu-as ¤ò»ØÄꤷ¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢GAS ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Îǧ¤¹¤ë¤Î¤ÏÆÉ¼Ô¤ÎÀÕǤ¤Ç¤¢¤ë¡£GNU CC ¤Ï¡¢as ¤È¤¤¤¦Ì¾Á°¤Î¥×¥í¥°¥é¥à¤ò¿§¡¹¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤«¤éõ¤¹¡£¤â¤·¸«¤Ä¤±¤¿¥×¥í¥°¥é¥à¤¬ GAS ¤Ç¤¢¤ì¤Ð¡¢GAS ¤¬¼Â¹Ô¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£GNU CC ¤¬»È¤Ã¤Æ¤¤¤ë¥¢¥»¥ó¥Ö¥é¤¬¤É¤³¤Ë¤¢¤ë¤Î¤«¤ï¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢-v ¤ò»ØÄꤷ¤Æ¼Â¹Ô¤·¤Æ¤ß¤è¤¦¡£

    GAS ¤ò»È¤¦¤«¤É¤¦¤«¤Ë¤è¤Ã¤Æ°ã¤¤¤¬À¸¤¸¤ë¥·¥¹¥Æ¥à¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£hppa1.0-any-any¡¢ hppa1.1-any-any¡¢i386-any-sysv¡¢ i386-any-isc¡¢
    i860-any-bsd¡¢ m68k-bull-sysv¡¢ m68k-hp-hpux¡¢m68k-sony-bsd¡¢
    m68k-altos-sysv¡¢ m68000-hp-hpux¡¢ m68000-att-sysv¡¢any-lynx-lynxos¡¢mips-any)¡£¤³¤ì¤é°Ê³°¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢--with-gnu-as ¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¡£

    ¾å¤ËÎóµó¤·¤¿¥·¥¹¥Æ¥à¤Ç¤Ï(HP-PA, i386 ¾å¤Î ISC¡¢mips-sgi-irix5.* ¤ò½ü¤¯)¡¢GAS ¤ò»È¤¦¾ì¹ç¤Ë¤Ï GNU ¥ê¥ó¥«¤â»È¤¦¤Ù¤­¤Ç¤¢¤ë(--with-gnu-ld ¤ò»ØÄꤹ¤ë)¡£

    --with-gnu-ld
    GNU CC ¤È°ì½ï¤Ë GNU ¥ê¥ó¥«¤ò»È¤¦Í½Äê¤Ê¤é¡¢--with-gnu-ld ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£

    ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¤Ï¡¢GNU ¥ê¥ó¥«¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤è¤¦¤È¤Ï¤·¤Ê¤¤¡£Ã±¤Ë¡¢GNU CC ¤Î¿¶¤ë¤Þ¤¤¤ò GNU ¥ê¥ó¥«¤È¶¨Ä´¤·¤ÆÆ°ºî¤¹¤ë¤è¤¦¤Ë½¤Àµ¤¹¤ë¤À¤±¤Ç¤¢¤ë¡£

    --with-stabs
    MIPS ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¤È Alpha ¤Ç¤Ï¡¢GNU CC ¤¬Ä̾ï¤Î ECOFF ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òºî¤ë¤«¡¢BSD·Á¼°¤Î stabs ¤ò ECOFF ¤Î¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òÄ̤·¤Æ»È¤¦¤«¤Î¤É¤Á¤é¤«¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Ä̾ï¤Î ECOFF ¥Ç¥Ð¥Ã¥°¾ðÊó·Á¼°¤Ï¡¢C °Ê³°¤Î¸À¸ì¤ò´°Á´¤Ë¤Ï¼è¤ê°·¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£BSD stabs ·Á¼°¤Ï¡¢Â¾¤Î¸À¸ì¤â°·¤¨¤ë¤¬¡¢GNU ¥Ç¥Ð¥Ã¥¬ GDB ¤Ç¤·¤«»È¤¨¤Ê¤¤¡£

    Ä̾GNU CC ¤Ï¡¢ECOFF ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤ò¥Ç¥Õ¥©¥ë¥È¤Ç»È¤¦¡£BSD stabs ¤ÎÊý¤¬Îɤ±¤ì¤Ð¡¢GNU CC ¤ò¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤¹¤ëºÝ¤Ë--with-stabs ¤ò»ØÄꤹ¤ë¡£

    GNU CC ¤ò¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤¹¤ë¤µ¤¤¤Ë¡¢¤É¤Á¤é¤ò¥Ç¥Õ¥©¥ë¥È¤È¤·¤ÆÁª¤ó¤À¤«¤Ë´Ø¤ï¤é¤º¡¢¥æ¡¼¥¶¤Ï -gcoff ¥ª¥×¥·¥ç¥ó¤È -gstabs+ ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢ÆÃÄê¤Î¥³¥ó¥Ñ¥¤¥ëËè¤Ë¥Ç¥Ð¥Ã¥°¾ðÊó·Á¼°¤òÌÀ¼¨Åª¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

    --with-stabs ¤Ï¡¢i386 ¾å¤Î ISC ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢--with-gas ¤â»ØÄꤵ¤ì¤¿¤È¤­¤ËÍ­¸ú¤Ë¤Ê¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¢COFF ½ÐÎϤÎÃæ¤ËËä¤á¹þ¤à·Á¤Î stabs ¥Ç¥Ð¥Ã¥°¾ðÊó¤ò»È¤¦¤³¤È¤òÁªÂò¤¹¤ë¡£¤³¤Î¼ïÎà¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤Ï C++ ¤â¥µ¥Ý¡¼¥È¤¹¤ë¡£Ä̾ï¤Î COFF ¥Ç¥Ð¥Ã¥°¾ðÊó¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£

    --with-stabs ¤Ï¡¢i386 ¾å¤Î SVR4 ¤Ç¤âÍ­¸ú¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¢ELF ½ÐÎϤÎÃæ¤ËËä¤á¹þ¤à·Á¤Î stabs ¥Ç¥Ð¥Ã¥°¾ðÊó¤ò»È¤¦¤³¤È¤òÁªÂò¤¹¤ë¡£C++ ¥³¥ó¥Ñ¥¤¥é¤Ï¸½ºß(2.6.0)¡¢i386 ¾å¤Î SVR4 ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤ÇÄ̾ï»È¤ï¤ì¤Æ¤¤¤ë DWARF ¥Ç¥Ð¥Ã¥°¾ðÊó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢stabs ¤òưºî¤¹¤ëÁªÂò»è¤È¤Ê¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢gas ¤È gdb ¤òɬÍפȤ¹¤ë¡£Ä̾ï¤Î SVR4 ¤Î¥Ä¡¼¥ë¤Ç¤Ï¡¢stabs ¤òÀ¸À®¤·¤¿¤ê¡¢²ò¼á¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

    --nfp
    ¤¢¤ë¼ï¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥Þ¥·¥ó¤ËÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤¬¤¢¤ë¤«¤É¤¦¤«¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤¦¤¤¤¦¥·¥¹¥Æ¥à¤Ë¤Ï¡¢m68k-sun-sunosn ¤ä m68k-isi-bsd ¤¬¤¢¤ë¡£Â¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢º£¤Î¤È¤³¤í --nfp ¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¤¬¡¢¤½¤ì¤ò»È¤Ã¤Æ°ã¤¤¤ò½Ð¤¹¤ÈÊØÍø¤Ê¥·¥¹¥Æ¥à¤¬¤ª¤½¤é¤¯Â¾¤Ë¤â¤¢¤ë¤À¤í¤¦¡£
    --enable-haifa
    --disable-haifa
    --enable-haifa ¤ò»ØÄꤹ¤ë¤È¡¢¤¢¤ë¼Â¸³Åª¤ÊÌ¿Î᥹¥±¥¸¥å¡¼¥é(IBM Haifa Äó¶¡)¤ò»È¤¦¤è¤¦¤Ë¤¹¤ë¡£¤³¤ì¤Ë¤è¤êÀ¸À®¤µ¤ì¤ë¥³¡¼¥É¤¬Îɤ¯¤Ê¤ë¤³¤È¤â¤¢¤ì¤Ð¡¢Îɤ¯¤Ê¤é¤Ê¤¤¤³¤È¤â¤¢¤ë¡£Îɤ¯¤Ê¤ë¤³¤È¤¬Ê¬¤«¤Ã¤Æ¤¤¤ë¤¤¤¯¤Ä¤«¤Îµ¡¼ï¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤³¤Îµ¡Ç½¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤½¤Î¾ì¹ç¡¢Ìµ¸ú¤Ë¤¹¤ë¤Ë¤Ï --disable-haifa ¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤ÐÎɤ¤¡£configure ¤ò¼Â¹Ô¤¹¤ë¤È¡¢Haifa ¥¹¥±¥¸¥å¡¼¥é¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤òɽ¼¨¤¹¤ë¡£
    --enable-threads=type
    ¤¢¤ë¼ï¤Î¥·¥¹¥Æ¥à¡¢ÆÃ¤Ë Linux ¥Ù¡¼¥¹ GNU ¥·¥¹¥Æ¥à¤Ï¡¢Objective C ¤Î¼Â¹Ô»þ¤Ë¥¹¥ì¥Ã¥Éµ¡Ç½¤òÄ󶡤¹¤ë¤Ë¤Ï¿®Í꤬ÃÖ¤±¤Ê¤¤¤Î¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¼Â¹Ô»þ¤Ë¤Ê¤ë¡£¤À¤¬¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¤Ë¥¹¥ì¥Ã¥É¤Î¼ÂÁõ¤¬ÍøÍѲÄǽ¤Ê¥é¥¤¥Ö¥é¥ê¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤½¤Î¾ì¹ç¡¢¥¹¥ì¥Ã¥Éµ¡Ç½¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ËŬÀÚ¤Ê type¡¢¤ª¤½¤é¤¯ posix ¤ò»ØÄꤹ¤ë¤³¤È¤ÇÍ­¸ú¤Ë¤Ê¤ë¡£type ¤Î²Äǽ¤ÊÃͤϡ¢single¡¢posix¡¢win32¡¢solaris¡¢irix¡¢mach ¤Ç¤¢¤ë¡£
    --enable-checking
    ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï¡¢¥Ä¥ê¡¼¡¦¥Î¡¼¥É·¿¤Î¸¡ºº¤ò¡¢¤½¤Î¥Î¡¼¥É¤Î¥Õ¥£¡¼¥ë¥É¤ò»²¾È¤·¤¿¤È¤­¤Ë¡¢¼Â¹Ô¤¹¤ë¤è¤¦¤Ë¹½ÃÛ¤µ¤ì¤ë¡£¤³¤ì¤ÏÀ¸À®¤µ¤ì¤ë¥³¡¼¥É¤òÊѤ¨¤ë¤³¤È¤Ï¤·¤Ê¤¤¤¬¡¢GCC ÆâÉô¤Î¥¨¥é¡¼¸¡ºº¤òÄɲ乤롣¤³¤ì¤Ë¤è¤ê¡¢¥³¥ó¥Ñ¥¤¥ë®ÅÙ¤ÏÃÙ¤¯¤Ê¤ê¡¢GCC ¤ò¹½ÃÛ¤¹¤ë¤Î¤ËGCC ¤ò»È¤Ã¤¿¤È¤­¤Ë¤·¤«Àµ¤·¤¯Æ°ºî¤·¤Ê¤¤¤À¤í¤¦¡£

    configure ¥¹¥¯¥ê¥×¥È¤Ï¡¢GNU CC ¤ËÅý¹ç¤µ¤ì¤ë¾¤Î¥³¥ó¥Ñ¥¤¥é¤ò¡¢¥½¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤«¤éõ¤¹¡£Î㤨¤Ð¡¢C++ ¸þ¤±¤Î GNU ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢G++ ¤È¸Æ¤Ð¤ì¤Æ¤ª¤ê¡¢cp ¤È¤¤¤¦¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¡£configure ¤Ï Makefile ¤Ë¥ë¡¼¥ë¤òÁÞÆþ¤·¤Æ¡¢¤³¤ì¤é¤Î¥³¥ó¥Ñ¥¤¥é¤òÁ´¤Æ¹½ÃÛ¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£

    °Ê²¼¤Ë¡¢configure ¤¬ÀßÄꤹ¤ë¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ»Ä¤é¤ºÀâÌÀ¤¹¤ë¡£ÉáÄ̤ϡ¢°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤ËÃí°Õ¤òʧ¤¦É¬ÍפϤʤ¤¡£

    • config.h ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬ºî¤é¤ì¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢ÆÉ¼Ô¤¬¥³¥ó¥Ñ¥¤¥é¤ò¼Â¹Ô¤¹¤ëµ¡¼ï¤ÎºÇ¾å°Ì¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤ò #include ¤Ç¼è¤ê¹þ¤à(see Config)¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥Û¥¹¥Èµ¡¼ï¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÄêµÁ¤¹¤ëÀÕǤ¤ò»ý¤Ä¡£tm.h ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¡£

      ºÇ¾å°Ì¥ì¥Ù¥ë¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤Ï¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥êconfig ¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¡£¤½¤Î̾Á°¤Ï¾ï¤Ë xm-something.h ¤Ç¤¢¤ë¡£ÉáÄÌ¤Ï xm-machine.h ¤Ç¤¢¤ë¤¬¡¢´ö¤Ä¤«Îã³°¤¬¤¢¤ë¡£

      ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢config.h ¤òŬÀڤʥե¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë #include À©¸æ»Ò¤ò´Þ¤à¤è¤¦¤ËÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£

    • tconfig.h ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬ºî¤é¤ì¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤ÎºÇ¾å°Ì¥ì¥Ù¥ë¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¤½¤Îµ¡¼ï¤Çưºî¤¹¤Ù¤­¤¢¤ë¼ï¤Î¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£
    • tm.h ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬ºî¤é¤ì¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Î¥Þ¥·¥óµ­½Ò¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê config ¤ËÃÖ¤¯É¬Íפ¬¤¢¤ê¡¢¤½¤Î¥Õ¥¡¥¤¥ë̾¤Ï machine.h ¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¡£

    --enable-nls
    --disable-nls
    --enable-nls ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤ÈÊì¹ñ¸ì¥µ¥Ý¡¼¥È(Native Language Support, NLS)¤òÍ­¸ú¤Ë¤¹¤ë¡£NLS ¤ò»È¤¦¤È¡¢GCC ¤Ï¡¢¹ç½°¹ñ¤Ç»È¤ï¤ì¤Æ¤¤¤ë±Ñ¸ì°Ê³°¤Î¸À¸ì¤Ç¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ¹¤ë¡£¥á¥Ã¥»¡¼¥¸¤òËÝÌõ¤·¤¿¤â¤Î¤Ï¤Þ¤ÀÍøÍѲÄǽ¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¼ç¤Ê¥æ¡¼¥¶¤Ï¡¢GCC ¤Î¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤òËÝÌõ¤·¤Æ¤¤¤ë¿Í¡¹¤Ç¤¢¤ê¡¢ËÝÌõºî¶È·ë²Ì¤Î³Îǧ¤Ë»È¤Ã¤Æ¤¤¤ë¡£°ìÅÙËÝÌõ¤¬Â·¤¨¤Ð¡¢Êì¹ñ¸ì¥µ¥Ý¡¼¥È¤ò¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ë¤¹¤ëͽÄê¤Ç¤¢¤ë¡£--disable-nls ¥ª¥×¥·¥ç¥ó¤Ç NLS ¤ò̵¸ú¤Ë¤Ç¤­¤ë¡£
    --with-included-gettext
    NLS ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢GCC ¤Î¹½ÃÛ¼ê½ç¤Ç¤ÏÉáÄÌ¡¢¥Û¥¹¥È¥Þ¥·¥ó¤Ë¤¢¤ëgettext ¥é¥¤¥Ö¥é¥ê¤ò»È¤¦¤³¤È¤ò¤Þ¤º»î¤ß¡¢¤½¤ì¤¬½¼Ê¬¤Ê¤â¤Î¤Ç¤Ê¤¤¾ì¹ç¤Ë¤À¤±¡¢GCC ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë GNU gettext ¥é¥¤¥Ö¥é¥ê¤ò»È¤¦¡£--with-included-gettext ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ÉÕ°¤Î GNU gettext ¤òÍ¥À褵¤»¤ë¡£
    --with-catgets
    NLS ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¥Û¥¹¥È¤Ë gettext ¤Ï¤Ê¤¤¤¬¡¢¤ä¤äÎô¤ë catgets ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ê¤é¤¢¤ë¤È¤¤¤¦¾ì¹ç¡¢GCC ¤Î¹½ÃÛ¼ê½ç¤Ç¤ÏÉáÄÌ¡¢catgets ¤Ï̵»ë¤·¤Æ¡¢Âå¤ï¤ê¤Ë GCC ¤ËÉÕ°¤ÎGNU gettext ¥é¥¤¥Ö¥é¥ê¤ò»È¤¦¡£--with-catgets ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢¤½¤Î¾ì¹ç¤Ë¥Û¥¹¥È¤Î catgets ¤ò»È¤¦¡£
  7. ¤¢¤ëÆÃÄê¤Î¾ì¹ç¡¢configure ¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ë¾¤ÎÆÃÄê¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£

  8. ¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¡£¥½¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤Ç make LANGUAGES=c ¤ò¼Â¹Ô¤¹¤ë¡£

    LANGUAGES=c ¤Ï¡¢C ¥³¥ó¥Ñ¥¤¥é¤Î¤ß¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£ÆÃ¤Ë»ØÄꤷ¤Ê¤±¤ì¤ÐÄ̾ï¤Ï¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¸À¸ìÁ´¤Æ¤Î¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¡£¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢C¡¢C++¡¢Objective C ¤Ç¤¢¤ë¡£¤·¤«¤·¡¢GNU C ¥³¥ó¥Ñ¥¤¥é°Ê³°¤Î¾¤Î¥³¥ó¥Ñ¥¤¥é¤ò»È¤Ã¤Æ¹½ÃÛ¤¹¤ë¾ì¹ç¤Ë¡¢Àµ¤·¤¯Æ°ºî¤¹¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¤Î¤Ï C ¤À¤±¤Ç¤¢¤ë¡£¤µ¤é¤ËÉÕ¤±²Ã¤¨¤ë¤Ê¤é¡¢C °Ê³°¤Î¤â¤Î¤ò¤³¤Î¥¹¥Æ¡¼¥¸¤Ç¹½ÃÛ¤¹¤ë¤Î¤Ï»þ´Ö¤Î̵Â̤Ǥ¢¤ë¡£

    °ìÈ̤ˡ¢¹½ÃÛ¤·¤¿¤¤¸À¸ì¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢°ú¿ô LANGUAGES="list" ¤òÄɲ乤롣¤³¤³¤Ç list ¤Ï¡¢c¡¢c++¡¢objective-c ¤Î¤¦¤Á¤«¤é°ì¤Ä°Ê¾åÁª¤ó¤Çʤ٤¿¤â¤Î¤Ç¤¢¤ë¡£GNU CC ¤Î¥½¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë²¿¤«ÄɲøÀ¸ì¤Î GNU ¥³¥ó¥Ñ¥¤¥é¤Î¥½¡¼¥¹¤ò»ý¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¤½¤Î̾Á°¤ò¥ê¥¹¥È¤Ë»ØÄꤷ¤Æ¤âÎɤ¤¡£

    insn-emit.c ¤Ç "statement not reached" ¤È¤¤¤¦·Ù¹ð¤¬½Ð¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢Ìµ»ë¤·¤ÆÎɤ¤¡£¤½¤ì¤ÇÌäÂê¤Ï¤Ê¤¤¡£¤½¤ì¤«¤é¡¢genopinit.c ¤ä¡¢¤â¤·¤«¤¹¤ë¤È¤½¤ì°Ê³°¤Î¥Õ¥¡¥¤¥ë¤Ç¤â½Ð¤ë¤«¤âÃΤì¤Ê¤¤¤¬¡¢"unknown escape sequence" ¤È¤¤¤¦·Ù¹ð¤âÌäÂ꤬¤Ê¤¤¡£Æ±Íͤˡ¢insn-emit.c ¤È insn-recog. ¤Î"constant is so large that it is unsigned"¡¢ enquire.o ¤ÎÈæ³Ó¤¬¾ï¤Ë 0 ¤Ë¤Ê¤ë»Ý¤Î·Ù¹ð¡¢¤½¤ì¤Ë cexp.y ¤Ç¤Î¥·¥Õ¥È²ó¿ô¤¬·¿¤ÎÂ礭¤µ¤ò±Û¤¨¤Æ¤¤¤ë¤È¤¤¤¦¤â̵»ë¤·¤ÆÎɤ¤¡£¤½¤ì°Ê³°¤Î¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤ÏÌäÂê¤Îµ¯¤­¤ë¥Þ¥·¥ó¤ä OS ¤Ø¤Î°Ü¿¢¤Î¥Ð¥°¤Î²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢Ä´¤Ù¤ÆÊó¹ð¤¹¤Ù¤­¤Ç¤¢¤ë(see Bugs)¡£

    ¥³¥ó¥Ñ¥¤¥é¤ÎÃæ¤Ë¤Ï¡¢¥Ð¥°¤äÀ©¸Â¤Î¤¿¤á¤Ë GNU CC ¤ò¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¤â¤Î¤¬¤¢¤ë¡£Î㤨¤Ð¡¢Microsoft ¤Î¥³¥ó¥Ñ¥¤¥é¤Ï¥Þ¥¯¥í¥¹¥Ú¡¼¥¹¤ò»È¤¤ÀڤäƤ·¤Þ¤¦¤È¸À¤ï¤ì¤Æ¤¤¤ë¡£¤¤¤¯¤Ä¤«¤Î Ultrix ¤Î¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¼°¶õ´Ö¤ò»È¤¤ÀڤäƤ·¤Þ¤¤¡¢ÌäÂ꤬µ¯¤­¤¿¤È¤³¤í¤Çʸ¤ò¤¤¤¯¤Ä¤«¤Ëʬ³ä¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

  9. ¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¾ì¹ç¤Ï¡¢¤³¤³¤ÇΩ¤Á»ß¤Þ¤ë¤³¤È¡£See Cross-Compiler¡£
  10. ¥¹¥Æ¡¼¥¸1¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤ò¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Ü¤¹¤Î¤Ë¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¡£
    make stage1
    

    ´ØÏ¢¥Õ¥¡¥¤¥ë¤Ï stage1 ¤È¤¤¤¦Ì¾Á°¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Üư¤µ¤ì¤ë¡£¥¤¥ó¥¹¥È¡¼¥ë¤¬´°Î»¤·¤¿¤Ê¤é¡¢¤³¤³¤ËÃÖ¤«¤ì¤¿¥Õ¥¡¥¤¥ë¤òrm -r stage1 ¤Ç¾Ã¤·¤Æ¤âÎɤ¤¡£

  11. GNU CC ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤È¤·¤Æ¡¢¥·¥¹¥Æ¥àɸ½à¤Î¥Ä¡¼¥ë¤Ç¤Ï¤Ê¤¯¡¢GNU ¤Î¥Ä¡¼¥ë(GAS ¤ä GNU ¥ê¥ó¥«¤Ê¤É)¤òɬÍפȤ¹¤ë¤â¤Î¤òÁª¤ó¤À¾ì¹ç¡¢¤½¤ÎɬÍפȤ¹¤ë¥Ä¡¼¥ë¤ò²¼°Ì¥Ç¥£¥ì¥¯¥È¥ê stage1 ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¡£¤½¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë̾¤Ï as¡¢ld ÅùŬÀڤʤâ¤Î¤Ë¤¹¤ë¡£¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢¥¹¥Æ¡¼¥¸1 ¤Î¥³¥ó¥Ñ¥¤¥é¤¬Â³¤¯¥¹¥Æ¡¼¥¸¤ÇŬÀڤʥġ¼¥ë¤ò¸«¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£

    ¤¢¤ë¤¤¤Ï¡¢¸å³¤Î¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤Ê¤¦¤Î¤Ë¡¢´Ä¶­ÊÑ¿ô PATH ¤ÎÃͤò¡¢É¬Í×¤Ê GNU ¥Ä¡¼¥ë¤¬¥·¥¹¥Æ¥àɸ½à¤Î¥Ä¡¼¥ë¤ÎÁ°¤ËÍè¤ë¤è¤¦¤ËÀßÄꤷ¤Æ¹Ô¤Ê¤Ã¤Æ¤âÎɤ¤¡£

  12. ¥³¥ó¥Ñ¥¤¥é¼«¿È¤ò°Ê²¼¤Î¤è¤¦¤ËºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£
    make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O2"
    

    ¤³¤Î²áÄø¤Ï¡¢¥¹¥Æ¡¼¥¸2 ¥³¥ó¥Ñ¥¤¥é¤ÎºîÀ®¤È¸Æ¤Ð¤ì¤ë¡£

    ¾å¤Ë¼¨¤·¤¿¥³¥Þ¥ó¥É¤Ï¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¸À¸ìÁ´¤Æ¤¬»È¤¨¤ë¥³¥ó¥Ñ¥¤¥é¤òºîÀ®¤¹¤ë¡£Á´Éô¤Î¸À¸ì¤ÏÍפé¤Ê¤¤¾ì¹ç¤Ï¡¢ºîÀ®¤·¤¿¤¤¸À¸ì¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢°ú¿ô¤Ë LANGUAGES="list" ¤òÄɲ乤롣list ¤Ï¡¢c¡¢c++¡¢objective-c¡¢proto ¤Î¤É¤ì¤«°ì¤Ä°Ê¾å¤Î̾Á°¤ò»ØÄꤹ¤ë¡£Ì¾Á°¤Ï¶õÇò¤Ç¶èÀڤ롣proto ¤Ï¡¢protoize ¤È unprototize ¥×¥í¥°¥é¥à¤òɽ¤¹¡£¤³¤ì¤é¤ÏÆÈΩ¤·¤¿¸À¸ì¤Ç¤Ï¤Ê¤¤¤¬¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤«¤É¤¦¤«¤òLANGUAGES ¤Ç»ØÄê¤Ç¤­¤ë¡£

    ¥¹¥Æ¡¼¥¸3¥³¥ó¥Ñ¥¤¥é¤òºîÀ®¤¹¤ë¤Ê¤é¡¢¥¹¥Æ¡¼¥¸2 ¤Ç¤Ï C ¸À¸ì¤Î¤ßºîÀ®¤¹¤ì¤Ð½¼Ê¬¤Ç¤¢¤ë¡£

    ¥¹¥Æ¡¼¥¸2 ¥³¥ó¥Ñ¥¤¥é¤¬°ìö½ÐÍè¤Æ¤·¤Þ¤¨¤Ð¡¢¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹¤¬ÉÔ­¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê stage1 ¤òºï½ü¤·¤Æ¤âÎɤ¤¡£

    68000 ¤ä 68020 ¤Î¥·¥¹¥Æ¥à¤Ç¡¢ÉâÆ°¾®¿ôÅÀ¥Ï¡¼¥É¥¦¥§¥¢¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÇÉâÆ°¾®¿ôÅÀ¥Ï¡¼¥É¥¦¥§¥¢¤¬Ìµ¤¤¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ëtm.h ¤òÁªÂò¤·¤Ê¤¤¸Â¤ê¡¢Âå¤ï¤ê¤Ë°Ê²¼¤Î¤è¤¦¤Ë¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤Ê¤¦¤³¤È¡£

    make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O2 -msoft-float"
    

  13. GNU CC ¤Î¥Æ¥¹¥È¤Î¤¿¤á¤Ë¡¢GNU CC ¼«¿È¤ÇÊ£¿ô²ó¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ï¡¢Â¾¤ËɬÍ×¤Ê GNU ¤Î¥Ä¡¼¥ë(GAS ¤ä GNU ¥ê¥ó¥«Åù)¤ò¡¢stage1 ¤Ç¤ä¤Ã¤¿¤Î¤ÈƱ¤¸¤è¤¦¤Ë¡¢ stage2 ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ª¤­¡¢°Ê²¼¤ò¼Â¹Ô¤¹¤ë¡£
    make stage2
    make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O2"
    

    ¤³¤Î²áÄø¤Ï¥¹¥Æ¡¼¥¸3¥³¥ó¥Ñ¥¤¥é¤ÎºîÀ®¤È¸Æ¤Ð¤ì¤ë¡£-B ¥ª¥×¥·¥ç¥ó°Ê³°¤Ï¡¢¥¹¥Æ¡¼¥¸2¥³¥ó¥Ñ¥¤¥é¤òºî¤Ã¤¿¤È¤­¤ÈƱ¤¸¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤è¤¦¤Ë¤¹¤ë¡£¤¿¤À¡¢LANGUAGES ¥ª¥×¥·¥ç¥ó¤ÏƱ¤¸¤Ç¤¢¤ëɬÍפϤʤ¤¡£¾å¤Ç¼¨¤·¤¿¥³¥Þ¥ó¥É¹Ô¤Ï¡¢¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ëÁ´¸À¸ìÍѤΥ³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¡£Á´¸À¸ì¤ÏÍפé¤Ê¤¤¾ì¹ç¤Ï¡¢¹½ÃÛ¤·¤¿¤¤¸À¸ì¤ò¡¢Á°½Ò¤·¤¿¤è¤¦¤Ë¡¢°ú¿ôLANGUAGES="list" ¤ò²Ã¤¨¤ë¤³¤È¤Ç»ØÄê¤Ç¤­¤ë¡£

    ¾¤ËɬÍ×¤Ê GNU ¥Ä¡¼¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤¯¤Æ¤âÎɤ¤¾ì¹ç¤Ï¡¢stage1¡¢stage2¤òºî¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤òÆó²ó¹½ÃÛ¤¹¤ëÂå¤ï¤ê¤Ë¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¹Ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

    make bootstrap LANGUAGES=language-list BOOT_CFLAGS=option-list
    

  14. ºÇ¸å¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë·²¤ò¥¹¥Æ¡¼¥¸2¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë·²¤ÈÈæ³Ó¤¹¤ë¡£Î¾¼Ô¤Ï¡¢¥¿¥¤¥à¥¹¥¿¥ó¥×(¤¢¤ì¤Ð)¤òÇÁ¤¤¤Æ¡¢Æ±Åù¤Ç¤¢¤ë¤Ù¤­¤À¡£

    µ¡¼ï¤Ë¤è¤Ã¤Æ¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î°ÕÌ£¤Î¤¢¤ëÈæ³Ó¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤¬¤¢¤ë¡£¾ï¤Ë¡Ö°Û¤Ê¤Ã¤Æ¤·¤Þ¤¦¡×¤è¤¦¤Ë¸«¤¨¤ë¡£¤³¤ì¤Ï¡¢º£¤Î¤È¤³¤í¡¢Solaris ¤È ELF ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë·Á¼°¤ò»ÈÍѤ·¤Æ¤¤¤ë´ö¤Ä¤«¤Î¥·¥¹¥Æ¥à¤¬Åö¤Æ¤Ï¤Þ¤ë¡£SGI ¤Î Irix ¤Î´ö¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤È¡¢Alpha ¥·¥¹¥Æ¥à¾å¤Î DEC Unix(OSF/1) ¤Ç¤Ï¡¢-save-temps ¤ò»ØÄꤷ¤Ê¤¤¤È¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤òÈæ³Ó¤Ç¤­¤Ê¤¤¤À¤í¤¦¡£Èæ³Ó¤Ë¼ºÇÔ¤·¤¿¤Ê¤é¡¢¤³¤ì¤é¤Î¸Ä¡¹¤Î¥·¥¹¥Æ¥à¤ÎÀâÌÀ¤ò¸«¤ÆÍߤ·¤¤¡£Â¾¤Î¥·¥¹¥Æ¥à¤Ç¤âƱ¤¸¤è¤¦¤ÊÌäÂ꤬µ¯¤­¤ë¤«¤â¤·¤ì¤Ê¤¤¡£

    ¥Õ¥¡¥¤¥ë¤ÎÈæ³Ó¤ò¹Ô¤Ê¤¦¤Ë¤Ï¼¡¤Î¥³¥Þ¥ó¥É¤ò»È¤¦¡£

    make compare
    

    ¤³¤ì¤Ï¡¢¥¹¥Æ¡¼¥¸2 ¤È¥¹¥Æ¡¼¥¸3¤Ç°Û¤Ê¤ë¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤ÆÃΤ餻¤Æ¤¯¤ì¤ë¡£²¿¤«°ã¤¤¤¬¤¢¤ì¤Ð¡¢¤½¤ì¤¬Ìµ³²¤«¤É¤¦¤«¤Ë´Ø¤ï¤é¤º¡¢¥¹¥Æ¡¼¥¸ 2 ¤Î¥³¥ó¥Ñ¥¤¥é¤¬ GNU CC ¤òÀµ¤·¤¯¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤«¤Ã¤¿¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤·¡¢¤½¤ì¤æ¤¨ÀøºßŪ¤Ë½ÅÂç¤Ç¡¢Ä´ºº¤·¤¿¤¦¤¨¤ÇÊó¹ð(see Bugs)¤ò¹Ô¤Ê¤¦¤Ù¤­¥Ð¥°¤¬Â¸ºß¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

    ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ë¥¿¥¤¥à¥¹¥¿¥ó¥×¤òÁÞÆþ¤·¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤¬Èæ³Ó¤ò¹Ô¤Ê¤¦Â®¤¤ÊýË¡¤Ç¤¢¤ë(Bourne ¥·¥§¥ë¤ò»È¤Ã¤Æ¤¤¤ë)¡£

    for file in *.o; do
    cmp $file stage2/$file
    done
    

    MIPS ¤Î¥Þ¥·¥ó¤Ç -mno-mips-tfile ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤·¤¿¾ì¹ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤òÈæ³Ó¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£

  15. ¥³¥ó¥Ñ¥¤¥é¥É¥é¥¤¥Ð¡¢¥³¥ó¥Ñ¥¤¥é¤Î³Æ¥Ñ¥¹¡¢¤½¤ì¤Ë¼Â¹Ô»þ¤Î¥µ¥Ý¡¼¥È¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Ë¤Ï¡¢make install ¤ò¼Â¹Ô¤¹¤ë¡£¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤Î¤ÈƱ¤¸ÃͤòCC ¤È CFLAGS¡¢LANGUAGES ¤ËÂФ·¤Æ»È¤¦¤è¤¦¤Ë¤¹¤ë¡£Æ±¤¸Ãͤˤ¹¤ëÍýͳ¤Î°ì¤Ä¤Ï¡¢Make ¤ÎÃæ¤Ë¤Ï¥Ð¥°¤Î¤¿¤á¤Ë¡¢¤³¤ÎÃʳ¬¤ÇÉÔɬÍפ˥ե¡¥¤¥ë¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤â¤Î¤¬¤¢¤ë¤¿¤á¤Ç¤¢¤ë¡£¤³¤ì¤é¤ÎÊÑ¿ô¤ÎÃͤòƱ¤¸¤Ë¤·¤Æ¤ª¤±¤Ð¡¢Å¬Àڤ˺ƥ³¥ó¥Ñ¥¤¥ë¤¬¹Ô¤Ê¤ï¤ì¤ë¡£

    Î㤨¤Ð¡¢¥¹¥Æ¡¼¥¸2 ¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤·¤Æ¤¢¤ì¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¹Ô¤ò»È¤¨¤ÐÎɤ¤¡£

    make install CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" LANGUAGES="list"
    

    ¤³¤ì¤Ï¡¢¥Õ¥¡¥¤¥ë cc1¡¢cpp¡¢libgcc.a ¤ò¥Ç¥£¥ì¥¯¥È¥ê /usr/local/lib/gcc-lib/target/version ¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë cc1¡¢cpp¡¢libgcc.a ¤Ë¥³¥Ô¡¼¤¹¤ë¡£¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Î¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à¤¬¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤òõ¤¹¾ì½ê¤Ç¤¢¤ë¡£¤³¤³¤Ç¡¢target ¤Ï¡¢configure ¤ò¼Â¹Ô¤·¤¿¤È¤­¤Ë»ØÄꤷ¤¿¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Î¥¿¥¤¥×¤ÎÀµµ¬·Á¤Ç¤¢¤ê¡¢version ¤Ï¡¢GNU CC ¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Ç¤¢¤ë¡£¤³¤Î̾Á°ÉÕ¤ÎÊýË¡¤Ë¤è¤ê¡¢¿§¡¹¤Ê¥Ð¡¼¥¸¥ç¥ó¤ä¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤¬¶¦Â¸²Äǽ¤Ë¤Ê¤ë¡£¤³¤ì¤Ï¤Þ¤¿¡¢Â¾¤Î¸À¸ì¤Î¥³¥ó¥Ñ¥¤¥é¤Î¼Â¹Ô·Á¼°(Î㤨¤Ð¡¢C++ ÍѤΠcc1plus ¤Ê¤É)¤òƱ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤¹¤ë¡£

    ¤³¤ì¤Ï¡¢¥É¥é¥¤¥Ð¥×¥í¥°¥é¥à xgcc ¤â /usr/local/bin/gcc ¤Ë¥³¥Ô¡¼¤¹¤ë¤Î¤Ç¡¢Åµ·¿Åª¤Ê¥³¥Þ¥ó¥É¸¡º÷¥Ñ¥¹Ãæ¤Ë¸½¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£¤Þ¤¿¡¢gcc.1 ¤ò /usr/local/man/man1 ¤Ë¡¢info ¥Ú¡¼¥¸¤ò /usr/local/info ¤Ë¥³¥Ô¡¼¤¹¤ë¡£

    ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È´ö¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤·¤Þ¤¦¡£¤³¤ì¤ÏÉáÄÌ¤Ï make ¤Î¥Ð¥°¤Ë¤è¤ë¤â¤Î¤Ç¤¢¤ë¡£¤³¤ì¤Ï̵»ë¤¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï GNU Make ¤ò»È¤¨¤ÐÎɤ¤¡£

    Ãí°Õ: Sun ¤Î¥é¥¤¥Ö¥é¥ê¤Î alloca ¤Ë¤Ï¥Ð¥°¤¬¤¢¤ë¡£¤³¤Î¥Ð¥°¤ò²óÈò¤¹¤ë¤Ë¤Ï¡¢GNU CC ¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ GNU CC ¤Î¼Â¹Ô·Á¼°¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤è¤¦Ãí°Õ¤¹¤ë¤³¤È¡£(¤¹¤Ê¤ï¤Á¡¢stage1 ¤Ç¤Ï¤Ê¤¯¤Æ¡¢stage2 ¤« 3 ¤Ç½ÐÍ褿¼Â¹Ô·Á¼°¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡£) GNU CC ¤Ï¡¢ÁȤ߹þ¤ß´Ø¿ô¤Î alloca ¤ò»È¤¤¡¢¥é¥¤¥Ö¥é¥ê¤Ë¤¢¤ë¤â¤Î¤Ï·è¤·¤Æ»È¤ï¤Ê¤¤¡£

    (Ä̾ï¤Ç¤â¡¢stage2 ¤Þ¤¿ 3 ¤Î GNU CC ¤Î¼Â¹Ô·Á¼°¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤Û¤¦¤¬Îɤ¤¡£¤È¤¤¤¦¤Î¤Ï¡¢Â¾¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤â¤Î¤è¤ê¤â¹â®¤Ëưºî¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£)

  16. C++ ¤ò»È¤ª¤¦¤È¤·¤Æ¤¤¤ë¤Ê¤é¡¢C++ ¼Â¹Ô»þ¥é¥¤¥Ö¥é¥ê¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£Á´¤Æ¤ÎÆþ½ÐÎϵ¡Ç½¡¢ÆÃÊ̤ʥ¯¥é¥¹¥é¥¤¥Ö¥é¥ê¤Ê¤É¤ò´Þ¤à¡£

    GNU CC ÍѤÎɸ½àC++¼Â¹Ô»þ¥é¥¤¥Ö¥é¥ê¤Ï libstdc++ ¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡£µìÈǤΠlibg++ ¤âÍøÍѲÄǽ¤Ç¤¢¤ë¤¬¡¢ÊÑ´¹¤¬ºÑ¤ó¤Ç¤¤¤Ê¤¤¸Å¤¤¥½¥Õ¥È¥¦¥§¥¢¤Ë¤·¤«É¬ÍפΤʤ¤¤â¤Î¤Ç¤¢¤ë¡£ÆÉ¼Ô¤¬ libg++ ¤òɬÍפȤ¹¤ë¤«¤É¤¦¤«¤ï¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢¤ª¤½¤é¤¯É¬ÍפȤ·¤Ê¤¤¤À¤í¤¦¡£

    °Ê²¼¤Ë GNU CC ÍÑ¤Ë libstdc++ ¤ò¹½ÃÛ¤·¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëÊýË¡¤Î°ì¤Ä¤ò¼¨¤¹¡£

    ¤Þ¤È¤á¤ë¤È¡¢GNU CC ¤ò¹½ÃÛ¡¦¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤¢¤È¡¢°Ê²¼¤Î¥·¥§¥ë¥³¥Þ¥ó¥É¤òC++ ¥é¥¤¥Ö¥é¥ê¤ÎÇÛÉÛʪ¤ÎºÇ¾å°Ì¥Ç¥£¥ì¥¯¥È¥ê¤Ç¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£configure-options ¤Ë¤Ï¡¢GNU CC ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç»ÈÍѤ·¤¿¤Î¤ÈƱ¤¸¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£

    $ CXX=gcc ./configure configure-options
    $ make
    $ make install
    

  17. GNU CC ¤Ë¤Ï Objective-C ¤Î¼Â¹Ô»þ¥é¥¤¥Ö¥é¥ê¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£Objective-C ¸À¸ì¤ÎÉԲķç¤ÊÉôʬ¤À¤«¤é¤Ç¤¢¤ë¡£¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ë´ØÏ¢¤¹¤ë¥Õ¥¡¥¤¥ë¤Ï objc ¤È¤¤¤¦¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¡£GNU Objective-C Runtime Library ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Ë¤Ï¥¿¡¼¥²¥Ã¥È¤ÎC ¥é¥¤¥Ö¥é¥ê¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬É¬ÍפǤ¢¤ê¡¢¥¹¥ì¥Ã¥É¥µ¥Ý¡¼¥È¤¬É¬Íפʤ饿¡¼¥²¥Ã¥È¤Î¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤âɬÍפǤ¢¤ë¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÌäÂê¤Ë¤Ä¤¤¤Æ¤Ï¡¢See Cross-Compilers and Header Files¡£

    configure ¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥¿¡¼¥²¥Ã¥È¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤ËŬ¤·¤¿Objective-C ¤Î¥¹¥ì¥Ã¥É¼ÂÁõ¥Õ¥¡¥¤¥ë¤òÁª¤Ó½Ð¤¹¡£¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢Ê£¿ô¤Î¥¹¥ì¥Ã¥É¼ÂÁõ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤¬¤¢¤Ã¤¿¤ê¡¢¥¹¥ì¥Ã¥É¥µ¥Ý¡¼¥È¤ò´°Á´¤Ë̵¸ú¤Ë¤·¤¿¤¤¤Ê¤É¤ÎÍýͳ¤Ë¤è¤ê¡¢°Û¤Ê¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¤òÁª¤Ó¤¿¤¤¤³¤È¤â¤¢¤ë¤À¤í¤¦¡£¤½¤ì¤Ë¤Ï¡¢make ¤Î¼Â¹Ô»þ¤Ë¡¢¥³¥Þ¥ó¥É¹Ô¤Ç Makefile ÊÑ¿ô¤ÎOBJC_THREAD_FILE ¤ËÃͤò»ØÄꤹ¤ì¤ÐÎɤ¤¡£Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£

    make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O2" OBJC_THREAD_FILE=thr-single
    

    °Ê²¼¤Ë¸½ºßÍøÍѲÄǽ¤Ê¥Ð¥Ã¥¯¥¨¥ó¥É¤Î°ìÍ÷¤ò¼¨¤¹¡£


Node:Configuration Files, Next:, Up:Installation

configure ¤¬ºî¤ê½Ð¤¹¥Õ¥¡¥¤¥ëã

configure ¤Ë¤è¤êÀßÄꤵ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò°ì¤Ä¤º¤Äµó¤²¤Æ¤ß¤ë¡£ÉáÄ̤ϡ¢°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤ËÃí°Õ¤òʧ¤¦É¬ÍפϤʤ¤¡£


Node:Configurations, Next:, Previous:Configuration Files, Up:Installation

GNU CC ¤Ç¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó

°Ê²¼¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë CPU ¤Î¥¿¥¤¥×¤Ç¤¢¤ë¡£

1750a, a29k, alpha, arm, cn, clipper, dsp16xx, elxsi, h8300, hppa1.0, hppa1.1, i370, i386, i486, i586, i860, i960, m32r, m68000, m68k, m88k, mips, mipsel, mips64, mips64el, ns32k, powerpc, powerpcle, pyramid, romp, rs6000, sh, sparc, sparclite, sparc64, vax, we32k.

°Ê²¼¤Ë¡¢Ç§¼±²Äǽ¤Ê´ë¶È̾¤ò¼¨¤¹¡£¸«¤ÆÈ½¤ë¤È¤ª¤ê¡¢Àµ¼°¤Ê̾Á°¤Ç¤Ï¤Ê¤¯¤Æ¡¢Îɤ¯»È¤ï¤ì¤ë¾Êά·Á¤ò»È¤Ã¤Æ¤¤¤ë¡£

acorn, alliant, altos, apollo, apple, att, bull, cbm, convergent, convex, crds, dec, dg, dolphin, elxsi, encore, harris, hitachi, hp, ibm, intergraph, isi, mips, motorola, ncr, next, ns, omron, plexus, sequent, sgi, sony, sun, tti, unicom, wrs.

´ë¶È̾¤Ï¡¢Â¾¤ËÍ¿¤¨¤é¤ì¤¿¾ðÊó¤Ç¤Ï½¼Ê¬¤Ç¤Ê¤¤¤È¤­¤Ë¤À¤±»È¤ï¤ì¤ë¡£É¬Íפ¬¤Ê¤±¤ì¤Ð¾Êά¤Ç¤­¡¢cpu-system ¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¤âÎɤ¤¡£Î㤨¤Ð¡¢vax-ultrix4.2 ¤Ï vax-dec-ultrix4.2 ¤ËƱ¤¸¤Ç¤¢¤ë¡£

°Ê²¼¤Ë¡¢Ç§¼±¤Ç¤­¤ë¥·¥¹¥Æ¥à̾¤ò¼¨¤¹¡£

386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux, dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux-gnu, hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs, netbsd, newsos, nindy, ns, osf, osfrose, ptx, riscix, riscos, rtu, sco, sim, solaris, sunos, sym, sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta, vxworks, winnt, xenix.

¥·¥¹¥Æ¥à̾¤Î»ØÄê¤Ï¾Êά²Äǽ¤Ç¤¢¤ë¡£¾Êά¤·¤¿¾ì¹ç¤Ï¡¢configure ¤¬CPU ¤È´ë¶È̾¤«¤é¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ò¿ä¬¤¹¤ë¡£

¥·¥¹¥Æ¥à̾¤Ë¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òÉÕ¤±Â­¤¹¤³¤È¤â¤Ç¤­¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢°ã¤¤¤¬À¸¤¸¤ë¾ì¹ç¤â¤¢¤ë¤·¡¢°ã¤¤¤Ï¤Ê¤¤¾ì¹ç¤â¤¢¤ë¡£Î㤨¤Ð¡¢bsd4.3 ¤ä bsd4.4 ¤È½ñ¤¤¤Æ¡¢BSD ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¶èÊ̤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£sysv3 ¤È sysv4 ¤Î¾ì¹ç¤Ë¤Ï¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɬÍפȤ·¡¢°Û¤Ê¤Ã¤¿°·¤¤¤ò¼õ¤±¤ë¡£

i860-dg-vms ¤Î¤è¤¦¤Ë¤¢¤ê¤¨¤Ê¤¤Áȹ礻¤ò»ØÄꤹ¤ë¤È¡¢configure ¤Ï¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¤«¡¢»ØÄꤵ¤ì¤¿¾ðÊó¤Î°ìÉô¤ò̵»ë¤·¤Æ»Ä¤ê¤ÎÉôʬ¤À¤±¤ÇºÇÁ±¤ò¤Ä¤¯¤·¤Æ¿ä¬¤ò¹Ô¤Ê¤¦¡£configure ¤Ï¡¢»È¤ï¤ì¤ëÁªÂò»è¤ÎÀµµ¬Ì¾¤ò¾ï¤Ë½ÐÎϤ¹¤ë¡£GNU CC ¤Ï¡¢²Äǽ¤ÊÁªÂò»è¤ÎÁ´¤Æ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£

¤¢¤ëµ¡¼ï¤ÎÆÃÄê¤Î¥â¥Ç¥ë¤Ë¤Ï̾Á°¤¬¤Ä¤¤¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ë¡£µ¡¼ï̾¤Î¿¤¯¤Ï¡¢CPU ¤È´ë¶È̾¤ÎÁȹ礻¤ÎÊÌ̾¤È¤·¤ÆÇ§¼±¤µ¤ì¤ë¡£Î㤨¤Ð¡¢¾å¤Ç½Ò¤Ù¤¿ sun3 ¤È¤¤¤¦µ¡¼ï̾¤Ï¡¢m68k-sun ¤ÎÊÌ̾¤Ç¤¢¤ë¡£´ë¶È̾¤òµ¡¼ï̾¤È¤·¤Æ¼õ¤±ÉÕ¤±¤ë¾ì¹ç¤â¤¢¤ë¡£¤³¤Î¾ì¹ç¡¢¤½¤Î̾Á°¤ÏÆÃÄê¤Îµ¡¼ï¤ò»Ø¤¹¤Î¤Ë¹­¤¯»È¤ï¤ì¤Æ¤¤¤ë¡£°Ê²¼¤Ë´ûÃΤε¡¼ï̾¤Îɽ¤ò¼¨¤¹¡£

3300, 3b1, 3bn, 7300, altos3068, altos, apollo68, att-7300, balance, convex-cn, crds, decstation-3100, decstation, delta, encore, fx2800, gmicro, hp7nn, hp8nn, hp9k2nn, hp9k3nn, hp9k7nn, hp9k8nn, iris4d, iris, isi68, m3230, magnum, merlin, miniframe, mmax, news-3600, news800, news, next, pbd, pc532, pmax, powerpc, powerpcle, ps2, risc-news, rtpc, sun2, sun386i, sun386, sun3, sun4, symmetry, tower-32, tower.

¥Þ¥·¥ó̾¤Ï¡¢CPU ¥¿¥¤¥×¤È²ñ¼Ò̾¤ÎξÊý¤ò»ØÄꤹ¤ë¤È¤¤¤¦¤³¤È¤ò³Ð¤¨¤Æ¤¤¤ÆÍߤ·¤¤¡£ÆÉ¼Ô¤¬¼«ºî¤·¤¿¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤¤¾ì¹ç¤Ï¡¢²ñ¼Ò̾¤È¤·¤Æ local ¤ò»È¤Ã¤Æ¤½¤ì¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó cpu-local ¤ò»È¤¦¤È¡¢cpu ¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Î¤Ê¤¤¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó̾¤¬¡¢¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë̾¤Ë»È¤ï¤ì¤ë¡£

¤Ä¤Þ¤ê¡¢m68k-local ¤È»ØÄꤷ¤¿¤È¤¹¤ë¤È¡¢¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ïm68k.md¡¢local.h¡¢m68k.c¡¢xm-local.h¡¢t-local¡¢x-local ¤È¤¤¤Ã¤¿¥Õ¥¡¥¤¥ë¤ò»È¤¦¡£¤³¤ì¤é¤ÏÁ´¤Æ¥Ç¥£¥ì¥¯¥È¥ê config/m68k ¤ËÃÖ¤«¤ì¤ë¡£

°Ê²¼¤Î¥ê¥¹¥È¤Ï¡¢ÃΤäƤ¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¢ÆÃÊ̤ʼ谷¤¤¤äÆÃÊ̤ʻö¹à¤Î¤¢¤ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤¢¤ë¡£

1750a-*-*
MIL-STD-1750A ¥×¥í¥»¥Ã¥µ¡£

MIL-STD-1750A ¤Î¥¯¥í¥¹¡¦¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ÏGNU Public License ¤Î¸µ¤ÇÍøÍѲÄǽ¤Ê 1750A ¸þ¤±¥¢¥»¥ó¥Ö¥é¡¿¥ê¥ó¥«¤Ç¤¢¤ëas1750 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë¡£as1750 ¤Ï¡¢ftp://ftp.fta-berlin.de/pub/crossgcc/1750gals/ ¤«¤éÆþ¼ê²Äǽ¤Ç¤¢¤ë¡£Æ±ÍͤΥ饤¥»¥ó¥¹¤ò»ý¤Ä¡¢1750A ¸þ¤±¥·¥ß¥å¥ì¡¼¥¿¤âƱ¤¸½ê¤«¤éÆþ¼ê²Äǽ¤Ç¤¢¤ë¡£

libcc ¤ò¹½ÃÛÃæ¤Ë½Ð¤ëÃ×̿Ū¥¨¥é¡¼¤Ï̵»ë¤·¤ÆÎɤ¤(1750A ¸þ¤±¤Îlibgcc ¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£)

as1750 ¥¢¥»¥ó¥Ö¥é¤Ï ms1750.inc ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òɬÍפȤ¹¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê ms1750.inc ¤Ë¤¢¤ë¡£

GNU CC ¤Ï¡¢Fairchild F9450 C Compiler ¤ÈƱ¤¸¥»¥¯¥·¥ç¥ó¤òÀ¸À®¤¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢°Ê²¼¤Î¤â¤Î¤Ç¤¢¤ë¡£

Normal
¥×¥í¥°¥é¥à¤Î¥³¡¼¥É¡¦¥»¥¯¥·¥ç¥ó¡£
Static
ÆÉ¤ß½ñ¤­(RAM)¥Ç¡¼¥¿¡¦¥»¥¯¥·¥ç¥ó¡£
Konst
ÆÉ¤ß¹þ¤ßÀìÍÑ(ROM)Äê¿ô¥»¥¯¥·¥ç¥ó¡£
Init
½é´ü²½¥»¥¯¥·¥ç¥ó(KREL ¤ò SREL ¤Ë¥³¥Ô¡¼¤¹¤ë¤¿¤á¤Î¥³¡¼¥É)¡£

¥¢¥É¥ì¥¹²Äǽ¤ÊºÇ¾®Ã±°Ì¤Ï 16 ¥Ó¥Ã¥È(BITS_PER_UNIT ¤¬ 16)¤Ç¤¢¤ë¡£¤³¤ì¤Ï¡¢`char' ·¿¤¬¡¢°ìʸ»ú¤Ë¤Ä¤­ 16 ¥Ó¥Ã¥È¤Î¸ì¤Çɽ¸½¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£1750A ¤Î "Load/Store Upper/Lower Byte" Ì¿Îá¤ÏGNU CC ¤Ç¤Ï»È¤ï¤ì¤Ê¤¤¡£

alpha-*-osf1
DEC Alpha ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¼ÂÁõ¤·¤¿¥×¥í¥»¥Ã¥µ¤ò»È¤¤¡¢DEC Unix (OSF/1) ¤¬Áö¤ë¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢DEC Alpha AXP ¥·¥¹¥Æ¥àÅù¤Ç¤¢¤ë¡£

¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ¹½ÃÛ¤µ¤ì¤Ê¤¤¸Â¤ê¡¢GNU CC ¤Ï .verstamp µ¿»÷Ì¿Îá¤ò¥¢¥»¥ó¥Ö¥é½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹¡£¤³¤ì¤Ë¤Ï¡¢¥·¥¹¥Æ¥à¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë /usr/include/stamp.h ¤«¤é¼è¤Ã¤¿¥Ð¡¼¥¸¥ç¥ó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£DEC Unix ¤Î¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¤­¤Ë¤Ï¡¢GCC ¤òºÆ¹½ÃÛ¤·¤Æ¡¢¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¥¹¥¿¥ó¥×¤ò¼è¤ê½Ð¤¹¤è¤¦¤Ë¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£

Alpha ¤Ï 64 ¥Ó¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ê¤Î¤Ç¡¢32¥Ó¥Ã¥È¤Îµ¡¼ï¤Çưºî¤¹¤ëAlpha ¤ò¥¿¡¼¥²¥Ã¥È¤È¤¹¤ë¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤Ï¡¢64¥Ó¥Ã¥È¤Îµ¡¼ï¤Çưºî¤¹¤ë¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤¹¤ë¥³¡¼¥É¤ÈÆ±ÄøÅ٤˸úΨ¤ÎÎɤ¤¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤³¤ì¤Ï¡¢Â¿¤¯¤ÎºÇŬ²½¤¬¡¢¥¿¡¼¥²¥Ã¥È¤Î¥ï¡¼¥É¤ò¥Û¥¹¥È¾å¤Ç¤ÎÀ°¿ôÃͤȤ·¤ÆÉ½¤»¤ë¤È¤¤¤¦¤³¤È¤Ë°Í¸¤·¤Æ¤ª¤ê¡¢32¥Ó¥Ã¥È¤Îµ¡¼ï¾å¤Ç¤Ï¼Â¹Ô¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£Alpha ¾å¤Çưºî¤¹¤ë¡¢¥¿¡¼¥²¥Ã¥È¤ò 32 ¥Ó¥Ã¥Èµ¡¼ï¤È¤¹¤ë¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¤Î¤Ï¡¢¤Û¤ó¤Î2,3¤Î¾ì¹ç¤·¤«¥Æ¥¹¥È¤µ¤ì¤Æ¤ª¤é¤º¡¢Â¿Ê¬Àµ¤·¤¯Æ°¤«¤Ê¤¤¤À¤í¤¦¡£

¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î DEC Unix ¤Ç¤Ï¡¢CFLAGS ¤Ë -save-temps ¤òÄɲ䷤ʤ¤¤È¡¢make compare ¤Ë¼ºÇÔ¤¹¤ë¡£¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥¢¥»¥ó¥Ö¥é¤Ø¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë̾¤¬¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ëÆâ¤Ë¼ý¤á¤é¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤Î¥Õ¥¡¥¤¥ë̾¤¬ stage1 ¤È stage2 ¤Ç°Û¤Ê¤ë¤È¡¢Èæ³Ó¤Ë¼ºÇÔ¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¤¢¤ë¡£¥ª¥×¥·¥ç¥ó -save-temps ¤ò»ØÄꤹ¤ë¤È¡¢¥¢¥»¥ó¥Ö¥é¤Ø¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ¡¢/tmp ¤ËÃÖ¤«¤ì¤ë¡¢¥é¥ó¥À¥à¤ËÁª¤Ð¤ì¤¿Ì¾Á°¤ÎÂå¤ï¤ê¤Ë¡¢¸ÇÄꤷ¤¿¥Õ¥¡¥¤¥ë̾¤ò»È¤¦¡£-save-temps ¥ª¥×¥·¥ç¥ó¤Ï¡¢¤³¤ì¤ò»ØÄꤷ¤Ê¤¤¤ÈÈæ³Ó¤Ë¼ºÇÔ¤¹¤ë¤Î¤Ç¤Ê¤¤¸Â¤ê¡¢Äɲ䷤ʤ¤¤³¤È¡£-save-temps ¤ò»ØÄꤹ¤ë¤È¡¢³Æ¥³¥ó¥Ñ¥¤¥ë¤ÎÃʳ¬¤Ç¡¢.i ¤È .s ¤Ç½ª¤ï¤ë¥Õ¥¡¥¤¥ë¤ò¼«Ê¬¤Ç¾Ã¤µ¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£

GNU CC ¤Ï¸½ºß¡¢DBX ¤È GDB ¤¬»È¤¦¥Í¥¤¥Æ¥£¥Ö(ECOFF)¥Ç¥Ð¥Ã¥°¾ðÊó·Á¼°¤ÈGDB ¤À¤±¤¬»È¤¦Ëä¤á¹þ¤ß STABS ·Á¼°¤ÎξÊý¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î¥Ç¥Ð¥Ã¥°¾ðÊó·Á¼°¤ÈÁªÂòÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï¡¢´û½Ð¤Îconfigure ¤Î --with-stabs ¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£

DEC ¤Î¥¢¥»¥ó¥Ö¥é¤Ë¤Ï¥Ð¥°¤¬¤¢¤ê¡¢.align µ¿»÷Ì¿Îá¤ò»È¤Ã¤¿¤È¤­¤ËECOFF ·Á¼°ÍѤιÔÈÖ¹æ¾ðÊó¤¬Àµ¤·¤¯¤Ê¤¤¤â¤Î¤òÀ¸À®¤¹¤ë¡£¤³¤ÎÌäÂê¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¡¢GNU CC ¤Ï¡¢ºÇŬ²½¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¤Ç¤âECOFF ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤ò½ñ¤­½Ð¤¹¤È¤­¤Ë¡¢¤³¤Îµ¿»÷Ì¿Îá¤ò¤À¤µ¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£¤¿¤À¤·¡¢»Äǰ¤Ê¤³¤È¤Ë¡¢¤³¤ì¤Ë¤ÏÈó¾ï¤Ëº¤¤ëÉûºîÍѤ¬¤¢¤ê¡¢-O ¤ò»ØÄꤷ¤¿¤È¤­¤Î¥³¡¼¥É¤Î¥¢¥É¥ì¥¹¤¬¡¢-g ¤ò¹ç¤ï¤»¤Æ»ØÄꤹ¤ë¤«¤É¤¦¤«¤Ë¤è¤Ã¤Æ°ã¤Ã¤Æ¤­¤Æ¤·¤Þ¤¦¡£

¤³¤ì¤òÈò¤±¤ë¤Ë¤Ï¡¢-gstabs+ ¤ò»ØÄꤷ¤Æ¡¢DBX ¤ÎÂå¤ï¤ê¤Ë GDB ¤ò»È¤¨¤ÐÎɤ¤¡£DEC ¤âº£¤Ç¤Ï¥¢¥»¥ó¥Ö¥é¤Î¤³¤ÎÌäÂê¤Ëµ¤ÉÕ¤¤¤Æ¤¤¤Æ¡¢ÁáµÞ¤Ë½¤ÀµÈǤòÄ󶡤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡£

arc-*-elf
Argonaut ¤Î ARC ¥×¥í¥»¥Ã¥µ¤Ç¤¢¤ë¡£¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ÏÁȤ߹þ¤ß¥·¥¹¥Æ¥à¸þ¤±¤Ç¤¢¤ë¡£
arm-*-aout
Advanced RISC Machines ¼Ò¤Î ARM °ì²¤Î¥×¥í¥»¥Ã¥µ¤Ç¤¢¤ë¡£Ëä¤á¹þ¤ß¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÎɤ¯»È¤ï¤ì¤Æ¤¤¤ë¡£É¸½à¤Î Unix ÍÑ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ï¸ºß¤·¤Ê¤¤¡£¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ï´ðËÜŪ¤ÊÌ¿ÎáÎó¤ËÂбþ¤·¡¢a.out ·Á¼°¤Î¥ª¥Ö¥¸¥§¥¯¥È¥â¥¸¥å¡¼¥ë¤òÀ¸À®¤¹¤ë¡£

ÆÉ¼Ô¼«¿È¤ÎÆÃÄê¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¸þ¤±¤Ë¤Ï¡¢arm.h ¤Î½¤ÀµÈǤòºî¤ëɬÍפ¬¤¢¤ë¡£

arm-*-linuxaout
a.out ¥Ð¥¤¥Ê¥ê·Á¼°¤ò»È¤¦ Linux ¥Ù¡¼¥¹ GNU ¥·¥¹¥Æ¥à¤Îưºî¤¹¤ëARM ¥×¥í¥»¥Ã¥µ(ELF ¤Ï¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤)¡£GNU/Linux binutils ¤Î2.8.1.0.7 °Ê¹ß¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤ì¤Ïsunsite.unc.edu:/pub/Linux/GCC ¤ä Linux ¥Ù¡¼¥¹ GNU ¥·¥¹¥Æ¥à¸þ¤±¤Î¾¤Î¥ß¥é¡¼¥µ¥¤¥È¤«¤éÆþ¼ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
arm-*-riscix
ARM2 ¤Þ¤¿¤Ï ARM3 ¤Çưºî¤¹¤ë RISC iX¡£RISC iX ¤Ï¡¢Acorn ¤Ë¤è¤ë BSD Unix ¤Î°Ü¿¢¤Ç¤¢¤ë¡£¥Ð¡¼¥¸¥ç¥ó 1.2 °ÊÁ°¤Î RISC iX ¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ÎºÝ¤Ë¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£RISC iX ÉÕ°¤Î¥¢¥»¥ó¥Ö¥é¤Ï¡¢stabs ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤³¤È¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£¸½ºß¡¢stabs ·Á¼°¤Î¥µ¥Ý¡¼¥È¤¬Æþ¤Ã¤¿¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î¥¢¥»¥ó¥Ö¥é¤¬ Acorn ¤«¤éÆþ¼ê¤Ç¤­¤ë¡£ftp ¤Ç¤Ïftp.acorn.com:/pub/riscix/as+xterm.tar.Z ¤«¤éÆþ¼ê¤Ç¤­¤ë¡£stabs ¥Ç¥Ð¥Ã¥°¾ðÊó¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï configure ¤Ë--with-gnu-as ¤ò»ØÄꤹ¤ë¡£

configure ¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë GNU sed ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£

a29k
AMD ¤Î Am29k ¥·¥ê¡¼¥º¤Î¥×¥í¥»¥Ã¥µ¤Ç¤¢¤ë¡£Ä̾ÁȤ߹þ¤ß¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»È¤ï¤ì¤ë¡£É¸½à¤ÎUNIX ¸þ¤±¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ï¸ºß¤·¤Ê¤¤¡£¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ï¡¢AMD ɸ½à¤Î¸Æ¤Ó½Ð¤·¥·¡¼¥±¥ó¥¹¤È¥Ð¥¤¥Ê¥ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ËÂбþ¤·¤Æ¤ª¤ê¡¢Â¾¤Î 29k ÍѤΥġ¼¥ë¤È¸ß´¹À­¤¬¤¢¤ë¡£

ÆÉ¼Ô¼«¿È¤ÎÆÃÄê¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¸þ¤±¤Ë¤Ï¡¢a29k.h ¤Î½¤ÀµÈǤòºî¤ëɬÍפ¬¤¢¤ë¡£

a29k-*-bsd
BSD Unix ¤Î¤¢¤ëÈǤ¬Æ°ºî¤¹¤ë¥·¥¹¥Æ¥à¤Ç»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¤ÎAMD Am29050 ¤Ç¤¢¤ë¡£
decstation-*
MIPS ¥Ù¡¼¥¹¤Î DECstation ¤Ï»°¤Ä¤Î°Û¤Ê¤ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£(Alpha ¥Ù¡¼¥¹¤Î DECstation À½ÉʤΥ³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó̾¤Ï alpha-dec ¤Ç»Ï¤Þ¤ë¡£) Ultrix¡¢DEC OSF/1¡¢OSF/rose ¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸þ¤±¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò»È¤¦¡£
decstation-ultrix
Ultrix ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó
decstation-osf1
OSF/1 ¤Î DECÈÇ¡£
decstation-osfrose
OSF/1 ¤Î Open Software Foundation ¤Î»²¾È¥Ý¡¼¥È¡£¤³¤ì¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë·Á¼°¤È¤·¤Æ¡¢ECOFF ¤ÎÂå¤ï¤ê¤ËOSF/rose ¤ò»È¤Ã¤Æ¤¤¤ë¡£ÉáÄÌ¡¢¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤òÁªÂò¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤À¤í¤¦¡£

MIPS ¤Î C ¥³¥ó¥Ñ¥¤¥é¤ËÂФ·¤Æ¤Ï¡¢cp/parse.c ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤Ë¡¢¥ª¥×¥·¥ç¥ó -Wf,-XNg1500 ¤ò»ØÄꤷ¤Æ¡¢¥¹¥¤¥Ã¥Áʸ¤Î¥Æ¡¼¥Ö¥ë¤ÎÂ礭¤µ¤òÂ礭¤¯¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ºÇŬ²½¥ª¥×¥·¥ç¥ó¤È¤·¤Æ -O2 ¤ò»È¤¦¾ì¹ç¤Ï¡¢-Olimit 3000 ¤â»È¤¦É¬Íפ¬¤¢¤ë¡£¤³¤ÎÆó¤Ä¤Î¥ª¥×¥·¥ç¥ó¤Ï¤É¤Á¤é¤â¡¢configure ¤¬¹½ÃÛ¤¹¤ëMakefile ¤Ë¤Ï¼«Æ°Åª¤ËÄɲ䵤ì¤ë¡£make ¤ÎÊÑ¿ô CC ¤ò¾å½ñ¤­¤·¤Æ MIPS ¤Î¥³¥ó¥Ñ¥¤¥é¤ò»È¤¦¤Ë¤Ï¡¢-Wf,-XNg1500 -Olimit 3000 ¤òÄɲ乤ëɬÍפ¬¤¢¤ë¡£

elxsi-elxsi-bsd
Elxsi ¤Î C ¥³¥ó¥Ñ¥¤¥é¤Ë¤Ï¡¢GNU C ¤Î¥³¥ó¥Ñ¥¤¥ë¤ò˸¤²¤ëÀ©¸Â¤¬¤¢¤ë¤³¤È¤¬ÃΤé¤ì¤Æ¤¤¤ë¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï mrs@cygnus.com ¤ËÏ¢Íí¤·¤ÆÍߤ·¤¤¡£
dsp16xx
AT&T ¤Î DSP1610 ¥·¥ê¡¼¥º¤Î¥×¥í¥»¥Ã¥µ¤Ø¤Î°Ü¿¢¤Ç¤¢¤ë¡£
h8300-*-*
ÆüΩ¤Î H8/300 ¥·¥ê¡¼¥º¤Î¥×¥í¥»¥Ã¥µ¤Ç¤¢¤ë¡£

¸Æ¤Ó¤À¤·µ¬Ìó¤È¹½Â¤ÂΤΥ쥤¥¢¥¦¥È¤¬¥ê¥ê¡¼¥¹2.6 ¤ÇÊѹ¹¤µ¤ì¤¿¡£Á´¤Æ¤Î¥³¡¼¥É¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£¿·¤·¤¤¸Æ¤Ó¤À¤·µ¬Ìó¤Ç¤Ï¡¢´Ø¿ô¤Î°ú¿ô¤ÎºÇ½é¤Î»°¤Ä¤ò¥ì¥¸¥¹¥¿¤ÇÅϤ¹¡£¹½Â¤ÂΤϡ¢Â礭¤µ¤¬¤â¤Ï¤ä 2 ¤ÎÇÜ¿ô¤Î¥Ð¥¤¥È¿ô¤Ç¤Ï¤Ê¤¤¡£

hppa*-*-*
HP-PA ¥×¥í¥»¥Ã¥µ¤Ë¤Ï¿§¡¹¤Ê¼ïÎब¤¢¤ê¡¢¿§¡¹¤Ê OS ¤¬Æ°ºî¤¹¤ë¡£GNU CC ¤¬Àµ¤·¤¤¥×¥í¥»¥Ã¥µ·¿¤ÈOS¤ò»È¤¦¤è¤¦¤Ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Àµ¤·¤¯¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤¢¤ì¤Æ¤¤¤Ê¤¤¤È¡¢GNU CC ¤ÏÀµ¤·¤¯µ¡Ç½¤·¤Ê¤¤¡£¤³¤ÎÌäÂê¤ËÂн褹¤ë°ìÈÖ´Êñ¤ÊÊýË¡¤Ï GNU CC ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò¹Ô¤Ê¤¦»þ¤Ë¥¿¡¼¥²¥Ã¥È¤ò»ØÄꤷ¤Ê¤¤¤³¤È¤Ç¤¢¤ë¡£¤½¤¦¤¹¤ë¤È¡¢configure ¥¹¥¯¥ê¥×¥È¤¬¼«Æ°Åª¤ËÀµ¤·¤¤¥×¥í¥»¥Ã¥µ·¿¤ÈOS¤ò·èÄꤷ¤Æ¤¯¤ì¤ë¡£

HP-UX ¤Ç¤Ï -g ¤Ï»È¤¨¤Ê¤¤¡£GNU CC ¤ÎÃΤé¤Ê¤¤¡¢ÆÈÆÃ¤Î¥Ç¥Ð¥Ã¥°¾ðÊó·Á¼°¤ò»È¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£¤À¤¬¡¢GCC ¤Ë GAS ¤È GDB ¤òÁȤ߹ç¤ï¤»¤Æ»È¤¦¤Ê¤é -g ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£Á´¤Æ¤Î HP-PA ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç GAS ¤ò»È¤¦¤³¤È¤ò¶¯¤¯¤ª´«¤á¤¹¤ë¡£

¤½¤Î¾ì¹ç¡¢GAS-2.6 °Ê¹ß¤È GDB_4.16 °Ê¹ß¤ò»È¤ï¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤³¤ì¤é¤Ï¡¢Á´¤Æ¤ÎÅÁÅýŪ GNU ftp ¥¢¡¼¥«¥¤¥Ö¥µ¥¤¥È¤«¤é¼è¤ê´ó¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

HP-UX ¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢GNU sed ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£

¥³¥Þ¥ó¥É¸¡º÷¥Ñ¥¹¤Ë¡¢/bin¡¢/usr/bin¡¢/usr/ccs/bin ¤Î¸½¤ì¤ëÁ°¤Ë¡¢GAS ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òÃÖ¤¯É¬Íפ¬¤¢¤ë¡£GNU CC ¤òºî¤ëÁ°¤Ë GAS ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£

¥Ç¥Ð¥Ã¥°¤ò²Äǽ¤Ë¤¹¤ë¤Ë¤Ï¡¢¹½ÃÛ¤ò¹Ô¤Ê¤¦Á°¤Ë --with-gnu-as ¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æ GNU CC ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò¹Ô¤Ê¤¦¡£

i370-*-*
¤³¤Î°Ü¿¢¤Ï¤Þ¤À¤Þ¤ÀͽÈ÷Ū¤Ç¤¢¤ê¡¢¤¿¤¯¤µ¤ó¥Ð¥°¤¬¤¢¤ë¤³¤È¤¬¤ï¤«¤Ã¤Æ¤¤¤ë¡£¤³¤Îµ¡¼ï¸þ¤±¤ÎÉʼÁ¤ÎÎɤ¤°Ü¿¢¤òÁáµÞ¤Ëµá¤á¤Æ¤¤¤ë¡£
i386-*-linux-gnuoldld
gas/binutils ¤Î¥Ð¡¼¥¸¥ç¥ó 2.5.2 °Ê¹ß¤ò¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß¤Ç¤Ê¤¤¾ì¹ç¤Ë¡¢Linux ¥Ù¡¼¥¹¤Î GNU ¥·¥¹¥Æ¥à¾å¤Ç a.out ·Á¼°¤Î¥Ð¥¤¥Ê¥ê¤òÀ¸À®¤¹¤ë¤Ë¤Ï¡¢¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò»È¤¦¡£¤³¤ì¤ÏÇѤ줿¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤¢¤ë¡£
i386-*-linux-gnuaout
Linux ¥Ù¡¼¥¹¤Î GNU ¥·¥¹¥Æ¥à¾å¤Ça.out ·Á¼°¤Î¥Ð¥¤¥Ê¥ê¤òÀ¸À®¤¹¤ë¤Ë¤Ï¡¢¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò»È¤¦¡£¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ÏÃÖ¤­´¹¤¨¤ÎÅÓ¾å¤Ë¤¢¤ë¡£gas/binutils ¤Î¥Ð¡¼¥¸¥ç¥ó 2.5.2 °Ê¹ß¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£
i386-*-linux-gnu
Linux ¥Ù¡¼¥¹¤Î GNU ¥·¥¹¥Æ¥à¾å¤Ç ELF ·Á¼°¤Î¥Ð¥¤¥Ê¥ê¤òÀ¸À®¤¹¤ë¤Ë¤Ï¡¢¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò»È¤Ã¤Æ¡£gas/binutils ¤Î¥Ð¡¼¥¸¥ç¥ó 2.5.2 °Ê¹ß¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£
i386-*-sco
RCC ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤¬¤ª´«¤á¤Ç¤¢¤ë¡£¤Þ¤¿¡¢¥·¥¹¥Æ¥à¤ËÉÕ¤¤¤Æ¤¯¤ëmalloc ¤Ç¤Ï¤Ê¤¯ GNU malloc ¤ò¥ê¥ó¥¯¤¹¤ë¤Î¤¬Îɤ¤¤À¤í¤¦¡£
i386-*-sco3.2v4
SCO ¤Î¥ê¥ê¡¼¥¹ 3.2 ¥Ð¡¼¥¸¥ç¥ó4 ¤Ë¤Ï¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò»È¤¦¡£
i386-*-sco3.2v5*
SCO OpenServe Release ¥·¥ê¡¼¥º¤Î 5.0.0¡¢5.0.2¡¢5.0.4¡¢5.0.5¡¢Internet FastStart 1.0¡¢Internet FastStart 1.1 ÍѤǤ¢¤ë¡£

GNU CC ¤Ï -mcoff ¤ò»ØÄꤹ¤ë¤È COFF ¥Ð¥¤¥Ê¥ê¤òÀ¸À®²Äǽ¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï ELF ¥Ð¥¤¥Ê¥ê¤Ç¤¢¤ë¡£ELF ¤ò¹½ÃÛ¤¹¤ë ELF ¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤µ¤ì¤ë¤è¤¦¤Ë´°Á´¤Ê make bootstrap ¤ò¹Ô¤¦¤³¤È¤ò¤ª´«¤á¤¹¤ë¡£

TLS597 ¤ò ftp://ftp.sco.com/TLS ¤«¤éÆþ¼ê¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¡¢ELF C++ ¥Ð¥¤¥Ê¥ê¤¬ 5.0.4 °ÊÁ°¤Î¥ê¥ê¡¼¥¹¤ÇÀµ¤·¤¯Æ°ºî¤¹¤ë¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

OS ¤Ë̵ÎÁ¤ÇÉÕ¤¤¤Æ¤¯¤ë SCO ¤Î¥Í¥¤¥Æ¥£¥Ö¡¦¥¢¥»¥ó¥Ö¥é¤¬ÉáÄ̤ÏɬÍפǤ¢¤ë¡£¤À¤¬¡¢GNU ¥¢¥»¥ó¥Ö¥é¤â»È¤¨¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤À¤í¤¦¤«¤é(ÆÉ¼Ô¤¬Ê£»¨¤Ê asm ʸ¤ò»È¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¤«¤é)¡¢¤³¤Î¥Ñ¥Ã¥±¡¼¥¸¤ò--with-gnu-as ¤ò»ØÄꤷ¤Æ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¤¿¤á¤Ë¤Ï¡¢gcc/as ¤È¤·¤Æ GNU ¥¢¥»¥ó¥Ö¥é¤ò¥¤¥ó¥¹¥È¡¼¥ë(cp ¤« symlink) ¤·¤Æ¤ª¤¯¡£¿·¤·¤á¤Î GNU binutils ¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥Ð¡¼¥¸¥ç¥ó 2.9.1 ¤Ï¤¦¤Þ¤¯Æ°ºî¤¹¤ë¤è¤¦¤À¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤òÁªÂò¤·¤¿¾ì¹ç¤Ï¡¢COFF ¥¤¥á¡¼¥¸¤ò¹½ÃÛ¤¹¤ë¤Î¤ÏÉÔ²Äǽ¤Ë¤Ê¤ë¡£¤½¤¦¤·¤è¤¦¤È¤¹¤ë¤È¡¢¤Ï¤Ã¤­¤ê¤È¤·¤¿·Á¤Ç¸«¤¨¤º¤Ë¼ºÇԤ˽ª¤ï¤ë¤À¤í¤¦¡£°ìÈ̤ˡ¢"-with-gnu-as" ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Í¥¤¥Æ¥£¥Ö¤Î¥¢¥»¥ó¥Ö¥éÄøÎɤ¯¤Ï¥Æ¥¹¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£

Ãí°Õ: C++ ¤ò¹½ÃÛ¤¹¤ë¾ì¹ç¤Ï¡¢make bootstrap ¤òµ¯Æ°¤¹¤ë¼ê½ç¤ò¼è¤ëɬÍפ¬¤¢¤ë¡£¥Í¥¤¥Æ¥£¥Ö¤Î OpenServer ¤Î¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¤¿¤¯¤µ¤ó¤ÎÀµ¤·¤¤ C ¥×¥í¥°¥é¥à¤òÀµ¤·¤¯¹½Ê¸²òÀϤǤ­¤Ê¤¤ cc1plus ¤òºî¤Ã¤Æ¤·¤Þ¤¦²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£¥Í¥¤¥Æ¥£¥Ö¥³¥ó¥Ñ¥¤¥é¤Ç¹½ÃÛ¤ò¹Ô¤¦¤È¤­¤Ï¡¢make bootstrap ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

i386-*-isc
¥·¥¹¥Æ¥à¤ËÉÕ¤¤¤Æ¤¯¤ë malloc ¤Ç¤Ï¤Ê¤¯ GNU malloc ¤ò¥ê¥ó¥¯¤¹¤ë¤Î¤¬Îɤ¤¤À¤í¤¦¡£

ISC ¥Ð¡¼¥¸¥ç¥ó 4.1 ¤Ç¤Ï¡¢duduced.h ¤òºî¤ë¤È¤­¤Ë sed ¤¬¥³¥¢¥À¥ó¥×¤¹¤ë¡£¥Ð¡¼¥¸¥ç¥ó 4.0 ¤Î sed ¤ò»È¤¦¤³¤È¡£

i386-*-esix
¥·¥¹¥Æ¥à¤ËÉÕ¤¤¤Æ¤¯¤ë malloc ¤Ç¤Ï¤Ê¤¯ GNU malloc ¤ò¥ê¥ó¥¯¤¹¤ë¤Î¤¬Îɤ¤¤À¤í¤¦¡£
i386-ibm-aix
GAS ¤Î¥Ð¡¼¥¸¥ç¥ó 2.1 ¤«¤½¤ì°Ê¹ß¡¢¤½¤ì¤Ë GNU LD ¤Î GNU binutils ¥Ð¡¼¥¸¥ç¥ó2.2 ¤«¤½¤ì°Ê¹ß¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£
i386-sequent-bsd
¥³¥ó¥Ñ¥¤¥ë¤¹¤ëÁ°¤Ë Berkeley ±§Ãè¤Ë¹Ô¤¯¡£
i386-sequent-ptx1*
i386-sequent-ptx2*
configure ¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë GNU sed ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£
i386-sun-sunos4
¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤¹¤ë¤Ë¤Ï GNU CC ¤ÎÊ̤ΥС¼¥¸¥ç¥ó¤¬É¬ÍפǤ¢¤ë¡£¤³¤ì¤Ï¡¢¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¥·¥¹¥Æ¥àɸ½à¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¹½ÃÛ¤¹¤ë¤È¡¢libgcc2.c ¤Î°ìÉô¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë̵¸Â¥ë¡¼¥×¤Ë´Ù¤ë¤«¤é¤Ç¤¢¤ë¡£GNU CC ¤ÎǤ°Õ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿ GNU CC ¥Ð¡¼¥¸¥ç¥ó 2 ¤Ë¤Ï¤³¤ÎÌäÂê¤Ï¤Ê¤¤¤è¤¦¤À¡£

Sun ¤Î¥·¥¹¥Æ¥à¤Ë GNU CC ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢Sun Install ¤ò»²¾È¤Î¤³¤È¡£

i[345]86-*-winnt3.5
¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢¤Þ¤À¥ê¥ê¡¼¥¹¤µ¤ì¤Æ¤¤¤Ê¤¤ GAS ¤òɬÍפȤ¹¤ë¡£¤½¤ì¤¬¥ê¥ê¡¼¥¹¤µ¤ì¤ë¤Þ¤Ç¤Î´Ö¡¢Á°¤â¤Ã¤Æ¹½ÃۺѤߤΥХ¤¥Ê¥êÈǤò<ftp://cs.washington.edu/pub/gnat/> ¤« cs.nyu.edu:pub/gnat ¤«¤éƿ̾ ftp ¤ÇÆþ¼ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤Þ¤¿¡¢Windows NT 3.5 SDK ¤Î Microsoft ¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£9/4/94 ÉդΠCDROM ¤Î /mstools/h ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤³¤ì¤é¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¡£NT 3.5 ÍÑ¤ËÆÃÊ̤˺î¤é¤ì¤¿¡¢Microsoft ¥ê¥ó¥«¤Î½¤ÀµÈǤò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤ì¤â¤Þ¤¿¡¢NT 3.5 SDK CDROM ¤ËÆþ¤Ã¤Æ¤¤¤ë¡£¤³¤Î¥ê¥ó¥«¤¬¤Ê¤¤¤È¤­¤Ï¡¢Visual C/C++ 1.0 ¤Þ¤¿¤Ï 2.0 ¤Î¥ê¥ó¥«¤ò»È¤Ã¤Æ¤âÎɤ¤¡£

NT ¤Ë GNU CC ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¡¢¥é¥Ã¥Ñ¡¼¤È¤·¤Æ¤Î¥ê¥ó¥«¤¬ºî¤é¤ì¤ë¡£¤³¤ì¤Ï ld.exe ¤È¤¤¤¦Ì¾Á°¤Ç¡¢¥é¥¤¥Ö¥é¥ê¤Î»ØÄêÊýË¡¤ÎÅÀ¤Ç(-L ¤È -l) Unix ¤Î ld ¤Îưºî¤Î¤Þ¤Í¤ò¤¹¤ë¡£ld.exe ¤Ï¥é¥¤¥Ö¥é¥ê¤Î Unix ̾¤È Microsoft ̾¤ÎξÊý¤òõ¤¹¡£Î㤨¤Ð¡¢-lfoo ¤È»ØÄꤹ¤ë¤È¡¢ld.exe ¤ÏºÇ½é¤Ë libfoo.a ¤òõ¤·¡¢¼¡¤Ë foo.lib ¤òõ¤¹¡£

GNU CC ¤ò Windows ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Ë¤ÏÆó¤Ä¤ÎÊýË¡¤¬¤¢¤ë¡£¤É¤Á¤é¤ò¼è¤ë¤«¤Ï¡¢Unix Ū¤Ê¥·¥§¥ë¤È¿§¡¹¤Ê Unix Ū¤Ê¥Ä¡¼¥ë¤¬¼ê¸µ¤Ë¤¢¤ë¤«¤É¤¦¤«¤Ë¤è¤ë¡£

  1. Unix ¤Ë¤¢¤ë¤è¤¦¤Ê¥·¥§¥ë¤ä¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤¬¤Ê¤¤¤È¤­¤Ï¡¢DOS ¤Î¥Ð¥Ã¥Á¥¹¥¯¥ê¥×¥È configure.bat ¤ò»È¤¦¡£¤³¤ì¤ò¡¢MSDOS ¤Î¥³¥ó¥½¡¼¥ë¥¦¥£¥ó¥É¥¦¤«¥×¥í¥°¥é¥à¥Þ¥Í¡¼¥¸¥ã¤Î¥À¥¤¥¢¥í¥°¥Ü¥Ã¥¯¥¹¤«¤é configure winnt ¤È¤·¤Æµ¯Æ°¤¹¤ë¡£configure.bat ¤Ï¡¢Unix ¤Ë¤¢¤ë¤è¤¦¤Ê sed ¥×¥í¥°¥é¥à¤¬¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß¤Ç¤¢¤ê¡¢¥³¥Þ¥ó¥É¸¡º÷¥Ñ¥¹¤ËÆþ¤Ã¤Æ¤¤¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£sed ¤ò»È¤Ã¤Æ¡¢Makefile.in ¤«¤é Makefile ¤òºî¤ë¤Î¤Ç¤¢¤ë¡£

    ¤³¤¦¤·¤Æ¤Ç¤­¤ë Makefile ¤Ç¤Ï¡¢Microsoft ¤Î Nmake ÊÝ¼é¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤È Visual C/C++ V8.00 ¥³¥ó¥Ñ¥¤¥é¤ò»È¤Ã¤Æ GNU CC ¤ò¹½ÃÛ¤¹¤ë¡£¤³¤ÎÊýË¡¤ò»È¤¦¾ì¹ç¤Ë¤Ï¡¢É¬Íפʥ桼¥Æ¥£¥ê¥Æ¥£¤Ï sed ¤È touch ¤À¤±¤Ç¤¢¤ê¡¢¥³¥ó¥Ñ¥¤¥é¼«ÂΤι½ÃۤޤǤ·¤«¼«Æ°Åª¤Ë¹Ô¤Ê¤ï¤Ê¤¤¡£¤³¤Î¸å¡¢fixinc.winnt ¤¬²¿¤ò¤·¤Æ¤¤¤ë¤Î¤«¤òį¤á¤Æ¡¢¥Ø¥Ã¥À¥Õ¥£¥¢¥ë¤òÊÔ½¸¤·¡¢libgcc.a ¤ò¼çư¤Çºî¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

  2. ÆóÈÖÌܤΥ¤¥ó¥¹¥È¡¼¥ëÊýË¡¤Ç¤Ï¡¢Unix ¤Ë¤¢¤ë¤è¤¦¤Ê¥·¥§¥ë¤¬»È¤¨¤Æ¡¢Unix ¤Ë¤¢¤ë¤è¤¦¤Ê¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬½¼Ê¬Â·¤Ã¤Æ¤¤¤Æ¥³¥Þ¥ó¥É¸¡º÷¥Ñ¥¹¤ËÆþ¤Ã¤Æ¤¤¤Æ¡¢¤«¤Ä GNU CC ¤Î°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤¬¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß¤Ç¤¢¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£GNU CC ¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢¾åµ­¤ÎÊýË¡¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤â¤Î¤Ç¤â¹½¤ï¤Ê¤¤¤·¡¢»öÁ°¤Ë¹½ÃÛ¤µ¤ì¤¿¥Ð¥¤¥Ê¥ê¤ò»È¤Ã¤Æ¤â¹½¤ï¤Ê¤¤¡£¤³¤Î¾ì¹ç¤Ï¡¢¤Õ¤Ä¤¦¤ÈƱ¤¸¤¯ configure ¥¹¥¯¥ê¥×¥È¤ò»È¤¨¤ÐÎɤ¤¡£

i860-intel-osf1
¤³¤ì¤Ï Paragon ÍѤǤ¢¤ë¡£

¥Ð¡¼¥¸¥ç¥ó 1.0 ¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÊʤËÂн褹¤ë¤¿¤á¤ËÆÃÊ̤ʼê½ç¤¬É¬ÍפʤΤǡ¢Installation Problems ¤ò»²¾È¤Î¤³¤È¡£

*-lynx-lynxos
LynxOS 2.2 ¤ª¤è¤Ó¤½¤ì°ÊÁ°¡£¤³¤ì¤é¤Ï¡¢GNU CC 1.x ¤¬ /bin/gcc ¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¯¤ë¡£/bin/cc ¤Ç¤Ï¤Ê¤¯ /bin/gcc ¤ò»È¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£GNU CC ¤Ë GNU ¥¢¥»¥ó¥Ö¥é¤È GNU ¥ê¥ó¥«¤ò»È¤¦¤è¤¦¤Ë»Ø¼¨¤¹¤ë¤Ë¤Ï¡¢¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó»þ¤Ë --with-gnu-as --with-gnu-ld ¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¡£¤³¤ì¤é¤Ï¡¢COFF ·Á¼°¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¡£GNU ¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤ò»È¤ï¤Ê¤¤¾ì¹ç¤Ï¡¢GNU CC ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ä¡¼¥ë¤ò»È¤¤¡¢a.out ·Á¼°¤Î¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¡£
m32r-*-elf
»°É© M32R ¥×¥í¥»¥Ã¥µ¡£¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ÏÁȤ߹þ¤ß¥·¥¹¥Æ¥àÍѤǤ¢¤ë¡£
m68000-hp-bsd
BSD Unix ¤¬Æ°ºî¤¹¤ë HP 9000 ¥·¥ê¡¼¥º 200 ¤Ç¤¢¤ë¡£¤³¤Î¥·¥¹¥Æ¥àÉÕ°¤Î C ¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï GNU CC ¤ò¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¤³¤È¤ËÃí°Õ¡£¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×ÍѤΠGNU CC ¤Î¥Ð¥¤¥Ê¥ê¤òÆþ¼ê¤¹¤ë¤Ë¤Ïlaw@cygnus.com ¤ËÏ¢Íí¤·¤ÆÍߤ·¤¤¡£
m68k-altos
Altos 3068 ¤Ç¤¢¤ë¡£GNU ¥¢¥»¥ó¥Ö¥é¡¢GNU ¥ê¥ó¥«¡¢GNU ¥Ç¥Ð¥Ã¥¬¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¾ÜºÙ¤Ï¡¢README.ALTOS ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¤³¤È¡£
m68k-apple-aux
A/UX ¤¬²ÔƯ¤¹¤ë Apple ¤Î Macintosh ¤Ç¤¢¤ë¡£GCC ¤ò¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤¹¤ë¤Î¤Ë¡¢¥·¥¹¥Æ¥à¤Î¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤ò»È¤Ã¤Æ¤âÎɤ¤¤·¡¢GNU ¤Î¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤ò»È¤Ã¤Æ¤âÎɤ¤¡£½ÐÍè¤ì¤Ð GNU ¤Î¤â¤Î¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£ÆÃ¤Ë GNU C++ ¤â»È¤¤¤¿¤¤¾ì¹ç¤Ï¡£GNU ¤Î¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤ò»È¤¦¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ë¤¹¤ë¤Ë¤Ï¡¢configure ¤Ë¥ª¥×¥·¥ç¥ó --with-gnu-as ¤È--with-gnu-ld ¤òÄɲ乤ì¤ÐÎɤ¤¡£

¥·¥¹¥Æ¥à¤ËÉÕ°¤Î C ¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï GNU CC ¤ò¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤ÆÍߤ·¤¤¡£GNU CC ¤ò¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤¹¤ë¤Ë¤Ï jagubox.gsfc.nasa.gov ¤Ë¤¢¤ë¥Ð¥¤¥Ê¥ê¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¤Þ¤¿¡¢Æ±¤¸¤È¤³¤í¤Ë¤¢¤ë¥Ñ¥Ã¥Á¤òÅö¤Æ¤¿¥Ð¡¼¥¸¥ç¥ó¤Î /bin/ld ¤ò»È¤¦¤È¡¢¤â¤È¤â¤È¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤¢¤ë¼êÁ°¾¡¼ê¤ÊÀ©¸ÂÃͤò¤¤¤¯¤é¤«¾å¤²¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

m68k-att-sysv
AT&T 3b1¡¢ÊÌ̾ 7300 PC ¤Ç¤¢¤ë¡£¤³¤Îµ¡¼ï¤Ç¡¢É¸½à¤Î C ¥³¥ó¥Ñ¥¤¥é¤ò»È¤Ã¤ÆGNU CC ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Ë¤ÏÆÃÊ̤ʼê½ç¤¬É¬ÍפǤ¢¤ë¡£¤³¤ì¤Ïɸ½à¤Î¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¥°¤Î¤»¤¤¤Ç¤¢¤ë¡£GNU CC ¤Î°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¢¤ë¤Ê¤é¡¢¤â¤Ã¤È´Êñ¤Ë¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤Ç¤­¤ë¡£

GNU CC ¤ò 3b1 ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Î¤Ï¡¢´û¤Ëưºî¤¹¤ë GNU CC ¤¬¤Ê¤¤¤Èº¤Æñ¤Ç¤¢¤ë¡£¤³¤ì¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß¤Î C ¥³¥ó¥Ñ¥¤¥é¤Ë¥Ð¥°¤¬¤¢¤ë¤¿¤á¤Ç¤¢¤ë¡£¤·¤«¤·¡¢°Ê²¼¤Î¤è¤¦¤Ê¼ê½ç¤Ç¤ª¤½¤é¤¯¤¦¤Þ¤¯¹Ô¤¯¤À¤í¤¦¡£²æ¡¹¤Ë¤Ï¡¢¤³¤Î¼ê½ç¤Ï¥Æ¥¹¥ÈÉÔ²Äǽ¤Ç¤¢¤ë¡£

  1. cccp.c ¤ÎÀèÆ¬ÉÕ¶á¤Î #include "config.h" ¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¡¢make cpp ¤ò¹Ô¤Ê¤¦¡£¤³¤ì¤Ç¡¢GNU cpp ¤Î½àÈ÷ÈǤòºî¤ë¡£
  2. ¸Å¤¤ /lib/cpp ¤òÂàÈò¤·¡¢GNU cpp ¤Î½àÈ÷ÈǤò¤³¤Î¥Õ¥¡¥¤¥ë̾¤Ç¥³¥Ô¡¼¤¹¤ë¡£
  3. cccp.c ¤ÎÊѹ¹¤ò¼è¤ê¾Ã¤¹¤«¡¢¥ª¥ê¥¸¥Ê¥ëÈǤòºÆ¥¤¥ó¥¹¥È¡¼¥ë¤·¡¢¤â¤¦°ìÅÙ make cpp ¤ò¹Ô¤Ê¤¦¡£
  4. ¤³¤¦¤·¤Æ¤Ç¤­¤¿ GNU cpp ¤ÎºÇ½ªÈǤò /lib/cpp ¤Ë¥³¥Ô¡¼¤¹¤ë¡£
  5. ¥Õ¥¡¥¤¥ë tree.c ¤Ë¸½¤ì¤ë obstack_free ¤òÁ´¤Æ_obstack_free ¤ËÃÖ¤­´¹¤¨¤ë¡£
  6. make ¤ò¼Â¹Ô¤·¤Æ¡¢GNU CC ¤Î¥Õ¥¡¡¼¥¹¥È¥¹¥Æ¡¼¥¸¤òºî¤ë¡£
  7. /lib/cpp ¤ò¥ª¥ê¥¸¥Ê¥ë¤Î¤â¤Î¤ËÌ᤹¡£
  8. ¤³¤ì¤Ç¡¢ÉáÄ̤μê½ç¤Ç¡¢GNU CC ¤ò¤½¤ì¼«¿È¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤ê¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤Ã¤¿¡£

m68k-bull-sysv
Bull DPX/2 ¤Î¥·¥ê¡¼¥º 200 ¤È 300 ¤Ç¡¢BOS-2.00.45 ¤«¤é BOS-2.01 ¤ò»È¤Ã¤Æ¤¤¤ë¤â¤Î¡£GNU CC ¤Ï¡¢¥·¥¹¥Æ¥àÉÕ°¤Î¥¢¥»¥ó¥Ö¥é¤È¤Ç¤âGNU ¥¢¥»¥ó¥Ö¥é¤È¤Ç¤â»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£configure ¥¹¥¯¥ê¥×¥È¤ËÂФ· --with-gnu-as ¤ò»ØÄꤹ¤ë¤³¤È¤Ç GNU ¥¢¥»¥ó¥Ö¥é¤È¥·¥¹¥Æ¥à¤ÎCOFF ·Á¼°¤ÎÁȹ礻¤Ç»È¤¦¤³¤È¤â¤Ç¤­¤ë¤·¡¢--with-gnu-as --stabs ¤ò»ØÄꤹ¤ë¤³¤È¤Ç GNU ¥¢¥»¥ó¥Ö¥é¤ÈDBX ·Á¼°¤ò COFF ·Á¼°¤ËÊñ¤ß¹þ¤ó¤À·Á¤È¤ÎÁȹ礻¤Ç»È¤¦¤³¤È¤â¤Ç¤­¤ë¡£¥·¥¹¥Æ¥à¥¢¥»¥ó¥Ö¥é¤ÎÌäÂê¤ä DPX/2 ÍѤΠGAS ¤ÎÆþ¼êÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢F.Pierresteguy@frcl.bull.fr ¤ËÌ䤤¹ç¤ï¤»¤ÆÍߤ·¤¤¡£
m68k-crds-unox
Unos ¤Ç¹½ÃÛ¤¹¤ë¤Ë¤Ï configure unos ¤È¤¹¤ë¡£

Unos ¤Î¥¢¥»¥ó¥Ö¥é¤Ï¡¢as ¤Ç¤Ï¤Ê¤¯ casm ¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ë¡£²¿¤é¤«¤ÎÊѤÊÍýͳ¤Ë¤è¤ê¡¢/bin/as ¤ò /bin/casm ¤Ë¥ê¥ó¥¯¤¹¤ë¤È¡¢Æ°ºî¤¬Âå¤ï¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¤¦¤Þ¤¯¹Ô¤«¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢GNU CC ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëºÝ¤Ë¤Ï¡¢GCC ¤Î³Æ¥Ñ¥¹¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Ê²¼¤Î¤è¤¦¤Ê¥¹¥¯¥ê¥×¥È¤ò as ¤È¤¤¤¦Ì¾Á°¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£

#!/bin/sh
casm $*

¥Ç¥Õ¥©¥ë¥È¤Î Unos ¤Î¥é¥¤¥Ö¥é¥ê¤Ï¡¢libc.a ¤Ç¤Ï¤Ê¤¯¡¢libunos.a ¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ë¡£GNU CC ¤òµ¡Ç½¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢gcc.c ¤ÎÃæ¤Î -lc ¤Ø¤ÎÁ´¤Æ¤Î»²¾È¤ò -lunos ¤ËÊѤ¨¤ë¤«¡¢/lib/libc.a ¤ò /lib/libunos.a ¤Ë¥ê¥ó¥¯¤¹¤ë¤«¤Î¤É¤Á¤é¤«¤ò¹Ô¤Ê¤¦¡£

GNU CC ¤ò¥·¥¹¥Æ¥àɸ½à¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Ë¤Ï¡¢alloca ¤Î¥Ð¥°¤òÈò¤±¤ë¤¿¤á¡¢¥¹¥Æ¡¼¥¸ 2 ¤òºî¤ë¤È¤­¤Ë-O ¤ò»È¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤³¤È¡£¤½¤¦¤·¤Æ¤ª¤¤¤Æ¡¢¥¹¥Æ¡¼¥¸ 3 ¤Î¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¥¹¥Æ¡¼¥¸ 2 ¥³¥ó¥Ñ¥¤¥é¤Ë -O ¤ò»ØÄꤷ¤Æºî¤ë¡£¤³¤¦¤·¤Æ½ÐÍè¤ë¥¹¥Æ¡¼¥¸ 3 ¤Î¥³¥ó¥Ñ¥¤¥é¤Ï¡¢Â¾¤Î¥·¥¹¥Æ¥à¤Ç¤ÎÄ̾ï¤Î¥¹¥Æ¡¼¥¸ 2 ¤Î¥³¥ó¥Ñ¥¤¥é¤ÈƱ¤¸À­³Ê¤ò»ý¤Ä¤â¤Î¤Ç¤¢¤ë¡£¤³¤ì¤ò»È¤Ã¤Æ¡¢¥¹¥Æ¡¼¥¸ 4 ¤Î¥³¥ó¥Ñ¥¤¥é¤òºî¤ê¡¢¥¹¥Æ¡¼¥¸ 3 ¤Î¥³¥ó¥Ñ¥¤¥é¤ÈÈæ³Ó¤·¤Æ¡¢¥³¥ó¥Ñ¥¤¥ë¤¬Àµ¤·¤¯¹Ô¤Ê¤ï¤ì¤¿¤«¤É¤¦¤«¤ò¸¡ºº¤¹¤ë¤³¤È¡£

(¶²¤é¤¯¡¢x-crds ¤Ë¤¢¤ë¥³¥á¥ó¥È¤Ë¤¢¤ë¤è¤¦¤Ë¡¢Ã±¤Ë x-crds ¤ÇALLOCA ¤òÄêµÁ¤¹¤ì¤Ð¡¢¾å¤Î¥Ñ¥é¥°¥é¥Õ¤ÎÏäÏÉÔÍפˤʤë¤È»×¤ï¤ì¤ë¡£¤¦¤Þ¤¯¹Ô¤Ã¤¿¿Í¤¬¤¤¤¿¤é¡¢À§Èó¤È¤â¶µ¤¨¤ÆÍߤ·¤¤¡£)

Unos ¤Ï¡¢Í×µá»þ¥Ú¡¼¥¸¥ó¥°¤Ç¤Ï¤Ê¤¯¤Æ¥á¥â¥ê¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¥á¥â¥ê¤¬¤¿¤¯¤µ¤óɬÍפˤʤ롣¾¤Î¥¿¥¹¥¯¤¬Áö¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢5Mb ¤Ç¤®¤ê¤®¤ê­¤ê¤ë¡£cc1 ¤ò¥ê¥ó¥¯¤¹¤ë¤Î¤Ë¼ºÇĤ·¤¿¤é¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥é¥¤¥Ö¥é¥ê¤ËÆþ¤ì¤¿¤¦¤¨¤Ç¡¢¤½¤Î¥é¥¤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤·¤Æ¤ß¤ÆÍߤ·¤¤¡£

m68k-hp-hpux
HP-UX ¤¬Æ°ºî¤¹¤ë HP 9000 ¥·¥ê¡¼¥º¤Î 300 ¤« 400 ¤Ç¤¢¤ë¡£HP-UX ¥Ð¡¼¥¸¥ç¥ó 8.0 ¤Î¥¢¥»¥ó¥Ö¥é¤Ë¤Ï¥Ð¥°¤¬¤¢¤ê¡¢GNU CC ¤ò¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¡£¤³¤Î¥Ð¥°¤ò½¤Àµ¤¹¤ë¤Ë¤Ï¡¢HP ¤«¤é¥Ñ¥Ã¥Á PHCO_4484 ¤òÆþ¼ê¤·¤ÆÍߤ·¤¤¡£

¤Þ¤¿¡¢--with-gnu-as ¤ò»ØÄꤷ¤Æ GAS ¤ò»È¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢GAS ¤Î¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤È GNU ¥ê¥ó¥«¤Î¥Ð¡¼¥¸¥ç¥ó 2.1 ¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó¤Î GAS ¤Ï¡¢GAS ¤Î½ÐÎϤò HP-UX ¤Î¥Í¥¤¥Æ¥£¥Ö·Á¼°¤ËÊÑ´¹¤¹¤ë¥×¥í¥°¥é¥à¤Ë°Í¸¤·¤Æ¤¤¤¿¡£¤À¤¬¡¢¤½¤Î¥×¥í¥°¥é¥à¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¢¤ë¡£GDB ¤Ï HP-UX ¤Î¥Í¥¤¥Æ¥£¥Ö·Á¼°¤òÍý²ò¤·¤Ê¤¤¤Î¤Ç¡¢GDB ¤ò»È¤¤¤¿¤¤¾ì¹ç¤â GAS ¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£

m68k-sun
Sun 3 ¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï Sun FPA ¤ò»È¤¦¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤ÏÄ󶡤·¤Æ¤¤¤Ê¤¤¡£ÉâÆ°¾®¿ôÅÀ¥È¥é¥Ã¥×¸þ¤±¤Î¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ë¥×¥í¥°¥é¥à¤Ï¡¢ËܼÁŪ¤Ë FPA ¤È°ì½ï¤Ë¤ÏưºîÉÔ²Äǽ¤À¤«¤é¤Ç¤¢¤ë¡£

Sun ¤Î¥·¥¹¥Æ¥à¤Ç¤Î GNU CC ¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢Sun Install ¤ò»²¾È¤Î¤³¤È¡£

m88k-*-svr3
AT&T/Unisoft/Motorola V.3 ¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¥Ý¡¼¥È¤¬Æ°ºî¤¹¤ë¡¢¥â¥È¥í¡¼¥é m88k ¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢É¸½à¤Î C ¥³¥ó¥Ñ¥¤¥é¤È¤·¤ÆGreen Hills C ¥ê¥Ó¥¸¥ç¥ó 1.8.5 ¤¬»È¤ï¤ì¤ë¤³¤È¤¬Â¿¤¤¡£¤³¤Î¥³¥ó¥Ñ¥¤¥é¤Ë¤ÏÌÀ¤é¤«¤Ë¥Ð¥°¤¬¤¢¤ê¡¢¤½¤Î¤¿¤á¡¢¥¹¥Æ¡¼¥¸ 2 ¤È¥¹¥Æ¡¼¥¸ 3 ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤¬°Û¤Ê¤ë¤â¤Î¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£¤½¤¦¤Ê¤Ã¤¿¾ì¹ç¡¢¥¹¥Æ¡¼¥¸ 4 ¤Î¥³¥ó¥Ñ¥¤¥é¤òºî¤Ã¤Æ¡¢¥¹¥Æ¡¼¥¸ 3 ¤ÈÈæ³Ó¤¹¤ë¤è¤¦¤Ë¤·¤ÆÍߤ·¤¤¡£¤½¤Î·ë²Ì¡¢¥¹¥Æ¡¼¥¸ 3 ¤È¥¹¥Æ¡¼¥¸ 4 ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤¬Æ±¤¸¤Ç¤¢¤Ã¤¿¤é¡¢É¸½à¤Î C ¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¥°¤ËÁø¶ø¤·¤¿²ÄǽÀ­¤¬¹â¤¤¡£¤³¤¦¤·¤Æ½ÐÍ褿¥¹¥Æ¡¼¥¸ 3 ¤È¥¹¥Æ¡¼¥¸ 4 ¤Î¥³¥ó¥Ñ¥¤¥é¤Ï»È¤¨¤ë¤È»×¤¦¡£

¤À¤¬¤·¤«¤·¡¢¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤¹¤ë¤Î¤Ë°ìÈÖÎɤ¤¤Î¤Ï¡¢¤â¤·¤¢¤ë¤Ê¤é¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î GNU CC ¤ò»È¤¦¤³¤È¤Ç¤¢¤ë¡£

m88k-*-dgux
DG/UX ¤Îưºî¤¹¤ë¥â¥È¥í¡¼¥é¤Î m88k ¤Ç¤¢¤ë¡£DG/UX ¾å ¤Î 88open BCS ¤Î¥Í¥¤¥Æ¥£¥Ö¥³¥ó¥Ñ¥¤¥é¤Þ¤¿¤Ï¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¤Ë¤Ï¡¢¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó̾¤È¤·¤Æ m88k-*-dguxbcs ¤ò»ØÄꤷ¡¢88open BCS ¤Î¥½¥Õ¥È¥¦¥§¥¢³«È¯´Ä¶­¤Ç¹½ÃÛ¤ò¹Ô¤Ê¤¦¡£DG/UX ¾å¤Î ELF ¤Î¥Í¥¤¥Æ¥£¥Ö¥³¥ó¥Ñ¥¤¥é¤Þ¤¿¤Ï¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¤Ë¤Ï¡¢mm8k-*-dgux ¤ò»ØÄꤷ¡¢DG/UX ELF ³«È¯´Ä¶­¤Ç¹½ÃÛ¤ò¹Ô¤Ê¤¦¡£¥½¥Õ¥È¥¦¥§¥¢³«È¯´Ä¶­¤òÀßÄꤹ¤ë¤Ë¤Ï¡¢sde-target ¥³¥Þ¥ó¥É¤ò»È¤¤¡¢°ú¿ô¤È¤·¤Æ m88kbcs ¤«m88kdguxelf ¤ò»ØÄꤹ¤ë¡£

¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó̾¤ò»ØÄꤷ¤Ê¤¤¤È¡¢configure ¤¬¡¢¸½ºß¤Î¥½¥Õ¥È¥¦¥§¥¢³«È¯´Ä¶­¤Ë´ð¤Å¤¤¤¿¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò¿ä¬¤¹¤ë¡£

m88k-tektronix-sysv3
UTekV 3.2e ¤Îưºî¤¹¤ë Tektronix XD88 ¤Ç¤¢¤ë¡£¥Ð¥°¤Î¿¤¤ Green Hills ¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤ò¹Ô¤Ê¤¦¤È¤­¤Ï¡¢¥¹¥Æ¡¼¥¸ 1 ¤òºî¤ë¤È¤­ºÇŬ²½¤ò¹Ô¤Ê¤ï¤Ê¤¤¤³¤È¡£¤Þ¤¿¡¢ÉÕ°¤Î LAI System V NFS ¤â¥Ð¥°¤¬Â¿¤¤¤Î¤Ç¡¢NFS ¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ç¹½ÃÛ¤¹¤ë¾ì¹ç¤Ï¡¢°ì²ó¥ê¥Ö¡¼¥È¤·¤Æ¤«¤é¹Ô¤Ê¤¦¤³¤È¡£¤¢¤ë¤¤¤Ï¡¢NFS ¤ÏÁ´¤¯»È¤ï¤Ê¤¤¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¡£¤µ¤â¤Ê¤¤¤È¡¢¥¹¥Æ¡¼¥¸´Ö¤ÎÈæ³Ó¤ÇÌäÂ꤬µ¯¤­¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
mips-mips-bsd
MIPS ¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ò BSD ¥â¡¼¥É¤Ç¼Â¹Ô¤·¤Æ¤¤¤ëMIPS ¤Î¥Þ¥·¥ó¤Ç¤¢¤ë¡£¤³¤Î¥·¥¹¥Æ¥à¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï¡¢memcpy¡¢memcmp¡¢memset ¤È¤¤¤Ã¤¿´Ø¿ô¤¬¤Ê¤¤¤â¤Î¤¬¤¢¤ë¡£ÆÉ¼Ô¤Î¥·¥¹¥Æ¥à¤Ë¤³¤ì¤é¤Î´Ø¿ô¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢mips-bsd.h Ãæ¤Î TARGET_MEM_FUNCTIONS ¤ÎÄêµÁ¤òºï½ü¤¹¤ë¤«Ì¤ÄêµÁ¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£

MIPS ¤Î C ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢switch ʸÍѤÎɽ¤ÎÂ礭¤µ¤ò-Wf,-XNg1500 ¥ª¥×¥·¥ç¥ó¤ÇÁý²Ã¤µ¤»¤Æ¤ª¤«¤Ê¤¤¤È¡¢cp/parse.c ¤ò¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¤È¸À¤ï¤ì¤Æ¤¤¤ë¡£ºÇŬ²½¥ª¥×¥·¥ç¥ó -O2 ¤ò»È¤¦¤Ë¤Ï¡¢-Olimit 3000 ¤âɬÍפǤ¢¤ë¡£¤³¤ÎÆó¤Ä¤Î¥ª¥×¥·¥ç¥ó¤ÏξÊý¤È¤â¡¢configure ¤¬ºî¤ë Makefile ¤Ë¤Ï¼«Æ°Åª¤ËÄɲ䵤ì¤ë¡£make ¤ÎÊÑ¿ô CC ¤ò¾å½ñ¤­¤·¤Æ MIPS ¤Î¥³¥ó¥Ñ¥¤¥é¤ò»È¤¦¤Ë¤Ï¡¢-Wf,-XNg1500 -Olimit 3000 ¤òÄɲ乤ëɬÍפ¬¤¢¤ë¡£

mips-mips-riscos*
MIPS ¤Î C ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢switch ʸÍѤÎɽ¤ÎÂ礭¤µ¤ò-Wf,-XNg1500 ¥ª¥×¥·¥ç¥ó¤ÇÁý²Ã¤µ¤»¤Æ¤ª¤«¤Ê¤¤¤È¡¢cp/parse.c ¤ò¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¤È¸À¤ï¤ì¤Æ¤¤¤ë¡£ºÇŬ²½¥ª¥×¥·¥ç¥ó -O2 ¤ò»È¤¦¤Ë¤Ï¡¢-Olimit 3000 ¤âɬÍפǤ¢¤ë¡£¤³¤ÎÆó¤Ä¤Î¥ª¥×¥·¥ç¥ó¤ÏξÊý¤È¤â¡¢configure ¤¬ºî¤ë Makefile ¤Ë¤Ï¼«Æ°Åª¤ËÄɲ䵤ì¤ë¡£make ¤ÎÊÑ¿ô CC ¤ò¾å½ñ¤­¤·¤Æ MIPS ¤Î¥³¥ó¥Ñ¥¤¥é¤ò»È¤¦¤Ë¤Ï¡¢-Wf,-XNg1500 -Olimit 3000 ¤òÄɲ乤ëɬÍפ¬¤¢¤ë¡£

RISC-OS ¤Îưºî¤¹¤ë MIPS ¤Î¥Þ¥·¥ó¤Ç¤Ï¡¢4¤Ä¤Î°Û¤Ê¤ë¸ÄÀ­¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤È BSD 4.3¡¢System V.3¡¢System V.4 ¤Ç¤¢¤ë¡£(RISC-OS ¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï V.4 ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤)¡£¤³¤ì¤é¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÍÑ¤Ë GCC ¤ò¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò»È¤¦¡£

mips-mips-riscosrev
¥ê¥Ó¥¸¥ç¥ó rev ¤Î RISC-OS ÍѤΥǥե©¥ë¥È¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¡£
mips-mips-riscosrevbsd
¥ê¥Ó¥¸¥ç¥ó rev ¤Î RISC-OS ÍѤΠBSD 4.3 ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¡£
mips-mips-riscosrevsysv4
¥ê¥Ó¥¸¥ç¥ó rev ¤Î RISC-OS ÍѤΠSystem V.4 ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¡£
mips-mips-riscosrevsysv
¥ê¥Ó¥¸¥ç¥ó rev ¤Î RISC-OS ÍѤΠSystem V.3 ¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¡£

¤³¤³¤Ç¥ê¥Ó¥¸¥ç¥ó rev ¤Ï¡¢RISC-OS ¤Î¥ê¥Ó¥¸¥ç¥ó¤Ç¤¢¤ë¡£RISC-OS ¤Î¥ê¥Ó¥¸¥ç¥ó 4 ¤«¤é ¥ê¥Ó¥¸¥ç¥ó 5 ¤Ë°Ü¤ë¤È¤­¤ÏGCC ¤òºÆ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤ì¤Ï¡¢¥ê¥ó¥«¤Î¥Ð¥°(¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï Installation Problems) ¤ò²óÈò¤¹¤ë¸ú²Ì¤¬¤¢¤ë¡£

mips-sgi-*
SGI IRIX 4 ¤Ç GCC ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Ë¤Ï¡¢Silicon Graphics Ä󶡤ÎCD-ROM ¤«¤é "c.hdr.lib" ¤È¤¤¤¦¥ª¥×¥·¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£¤³¤ì¤Ï¡¢¥ê¥ê¡¼¥¹ 4.0.1 ¤ÎÆóËçÌܤΠCD ¤ËÆþ¤Ã¤Æ¤¤¤ë¡£

SGI IRIX 5 ¤Ç GCC ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Ë¤Ï¡¢Silicon Graphics Ä󶡤ÎIDO CD-ROM ¤«¤é "compiler_dev.hdr" ¤È¤¤¤¦¥µ¥Ö¥·¥¹¥Æ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£

IRIX 5 ¤Ç¤Ï¡¢CFLAGS ¤Ë -save-temps ¤òÄɲ䷤ʤ¤¤È¡¢make compare ¤Ë¼ºÇÔ¤¹¤ë¡£¤³¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥¢¥»¥ó¥Ö¥é¤ËÂФ¹¤ëÆþÎÏ¥Õ¥¡¥¤¥ë̾¤¬¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤µ¤ì¤ë¤Î¤Ç¡¢¤½¤Î¥Õ¥¡¥¤¥ë̾¤¬ stage1 ¤È stage2 ¤Ç°ã¤Ã¤Æ¤¤¤ë¤È¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÎÈæ³Ó¤Ë¼ºÇÔ¤¹¤ë¡£¥ª¥×¥·¥ç¥ó -save-temps ¤ò»ØÄꤹ¤ë¤È¡¢¥¢¥»¥ó¥Ö¥é¤ËÂФ¹¤ëÆþÎÏ¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ¡¢/tmp ¤ËÃÖ¤«¤ì¤ë¥é¥ó¥À¥à¤ËÁª¤Ð¤ì¤¿Ì¾Á°¤Ç¤Ï¤Ê¤¯¤Æ¡¢·è¤Þ¤Ã¤¿Ì¾Á°¤ò»È¤¦¡£-save-temps ¤Ï¡¢¤³¤ì¤Ê¤·¤Ç¤ÏÈæ³Ó¤Ë¼ºÇÔ¤¹¤ë¤Î¤Ç¤Ê¤¤¸Â¤ê¡¢»ØÄꤷ¤Ê¤¤¤³¤È¡£¤³¤ì¤ò»ØÄꤷ¤Æ¤·¤Þ¤¦¤È¡¢³Æ¥³¥ó¥Ñ¥¤¥ëÃʳ¬¤Î¸å¤Ç.i ¥Õ¥¡¥¤¥ë¤È .s ¥Õ¥¡¥¤¥ë¤ò¼«Ê¬¤Çºï½ü¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¯¤Ê¤ë¡£

MIPS ¤Î C ¥³¥ó¥Ñ¥¤¥é¤Î¾ì¹ç¤Ï¡¢switch ʸÍѤÎɽ¤ÎÂ礭¤µ¤ò-Wf,-XNg1500 ¤È¤¤¤¦¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤ÇÂ礭¤¯¤·¤Æ¤ª¤«¤Ê¤¤¤Ècp/parse.c ¤¬¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¤ÈÊó¹ð¤µ¤ì¤Æ¤¤¤ë¡£ºÇŬ²½¥ª¥×¥·¥ç¥ó -O2 ¤ò»ØÄꤹ¤ë¤È¤­¤Ï¡¢-Olimit 3000 ¤â»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£¤³¤Î¤É¤Á¤é¤Î¥ª¥×¥·¥ç¥ó¤â¡¢¥·¥§¥ë¥¹¥¯¥ê¥×¥È configure ¤¬ºî¤ëMakefile ¤Ç¤Ï¼«Æ°Åª¤ËÀ¸À®¤µ¤ì¤ë¡£ make ¤ÎÊÑ¿ô CC ¤ò¾å½ñ¤­¤·¤Æ¡¢MIPS ¤Î¥³¥ó¥Ñ¥¤¥é¤ò»È¤¦¤È¤­¤Ï¡¢-Wf,-XNg1500 -Olimit 3000 ¤È¤¤¤¦¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£

Irix ¤Î¥Ð¡¼¥¸¥ç¥ó 4.0.5F¡¢¤½¤ì¤Ë¿ʬ¤½¤Î¾¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤âƱ¤¸¤À¤¬¡¢¥¢¥»¥ó¥Ö¥é¤Ë¥Ð¥°¤¬¤¢¤ê¡¢Ì¿Îá¤ÎʤÙÂØ¤¨¤¬Àµ¤·¤¯¹Ô¤Ê¤ï¤ì¤Ê¤¤¡£¤³¤ì¤ò²óÈò¤¹¤ë¤Ë¤Ï¡¢¥¿¡¼¥²¥Ã¥È¤Î¥³¥Ë¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤òmips-sgi-irix4loser ¤È»ØÄꤹ¤ë¡£¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ï¡¢¥¢¥»¥ó¥Ö¥é¤Ë¤è¤ëºÇŬ²½¤òÍ޻ߤ¹¤ë¡£

¥¿¡¼¥²¥Ã¥È mips-sgi-irix4 ¤Ç¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤·¤¿¾ì¹ç¤Ï¡¢¥¢¥»¥ó¥Ö¥é¤ÎºÇŬ²½¤Ï -noasmopt ¥ª¥×¥·¥ç¥ó¤ÇÍ޻ߤǤ­¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥¢¥»¥ó¥Ö¥é¤Ë¤Ï -O0 ¤È¤·¤ÆÅϤꡢ̿Îá¤ÎʤÙÂØ¤¨¤ò¹Ô¤Ê¤ï¤Ê¤¤¡£

-noasmopt ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢ÌäÂ꤬¥¢¥»¥ó¥Ö¥é¤Ë¤è¤ëÌ¿ÎáʤÙÂØ¤¨¤Ë´Ö°ã¤Ã¤Æ¤¤¤ë¤¿¤á¤Ëµ¯¤­¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤ë¡£-noasmopt ¤ò»ØÄꤷ¤Æ¤âÌäÂ꤬¤Ê¤¯¤Ê¤é¤Ê¤¤¾ì¹ç¤Ç¤â¡¢¤Ê¤ª¥¢¥»¥ó¥Ö¥é¤Ë¤è¤ëÌ¿ÎáʤÙÂØ¤¨¤ÎÌäÂê¤Î¤»¤¤¤Ç¤¢¤ë²ÄǽÀ­¤¬¤¢¤ë¡£¤³¤ÎÌäÂê¤Î¤¿¤á¤Ë¡¢GNU CC ¼«ÂΤ¬Àµ¤·¤¯¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¶²¤ì¤¬¤¢¤ë¡£

Irix 5 ¤Ç¥Ç¥Ð¥Ã¥°¤ò½ÐÍè¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢GNU as ¤Î 2.5 °Ê¹ß¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢gcc ¤ò¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤¹¤ë¤È¤­¤Ë configure ¤Î¥ª¥×¥·¥ç¥ó¤Ë --with-gnu-as ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£GNU as ¤Ï¡¢binutils ¥Ñ¥Ã¥±¡¼¥¸¤Î°ìÉô¤È¤·¤ÆÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¡£

mips-sony-sysv
Sony MIPS NEWS ¤Ç¤¢¤ë¡£¤³¤ì¤Ï NEWSOS 5.0.1 ¤Ç¤Ï¤¦¤Þ¤¯¤¤¤¯¤¬¡¢5.0.2 ¤Ç¤Ï¤¦¤Þ¤¯¤¤¤«¤Ê¤¤(5.0.2 ¤Ç¤Ï COFF ¤Ç¤Ï¤Ê¤¯ ELF ¤¬»È¤ï¤ì¤Æ¤¤¤ë)¡£5.0.2 ¤Ï¶²¤é¤¯¥Ü¥é¥ó¥Æ¥£¥¢¤Î¼ê¤Ç¤¹¤°¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤À¤í¤¦¡£ÆÃ¤Ë¡¢¶¦Í­¥é¥¤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤¹¤ë¤È¤­¤Ë GCC ¤ÇÀ¸À®¤µ¤ì¤¿¥³¡¼¥É¤ò¥ê¥ó¥«¤¬·ù¤¦¡£
ns32k-encore
Encore ns32000 ¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£Encore ¥·¥¹¥Æ¥à¤Ï BSD ¤Î¾ì¹ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£
ns32k-*-genix
National Semiconductor ¤Î ns32000 ¥·¥¹¥Æ¥à¤Ç¤¢¤ë¡£Genix ¤Î alloca ¤È malloc ¤Ë¤Ï¥Ð¥°¤¬¤¢¤ë¤Î¤Ç¡¢GNU Emacs ¤«¤é¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤ÎÈǤò¼è¤Ã¤Æ¤­¤Æ»È¤¦É¬Íפ¬¤¢¤ë¡£
ns32k-sequent
¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤Ê¤¦Á°¤Ë Berkley ±§Ãè¤Ë°Ü¹Ô¤¹¤ë¡£
ns32k-utek
UTEX ¤Î ns32000 ¥·¥¹¥Æ¥à("merlin") ¤Ç¤¢¤ë¡£¥·¥¹¥Æ¥àÉÕ°¤Î C ¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï GNU CC ¤ò¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Ê¤¤¡£tektronix!reed!mason ¤ËÏ¢Íí¤ò¼è¤Ã¤Æ¡¢¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤ËɬÍ×¤Ê GNU CC ¤Î¥Ð¥¤¥Ê¥ê¤òÆþ¼ê¤·¤ÆÍߤ·¤¤¡£
romp-*-aos
romp-*-mach
IBM RT PC ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë OS ¤Ï¡¢AOS ¤È MACH ¤À¤±¤Ç¤¢¤ë¡£GNU CC ¤Ï RT ¾å¤Î AIX ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£GNU CC ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Ë¤Ï¡¢GNU CC ¼«ÂΤθŤ¤¥Ð¡¼¥¸¥ç¥ól¤ò»È¤¦¤³¤È¤ò¤ª´«¤á¤¹¤ë¡£Metaware ¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¤¢¤ë hc ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤Ï¡¢°ì±þưºî¤¹¤ë¤¬¡¢¥¹¥Æ¡¼¥¸ 2 ¤È¥¹¥Æ¡¼¥¸ 3 ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÎÈæ³Ó¤Ç¡¢¿§¡¹¤Ê¥Õ¥¡¥¤¥ë¤¬°ìÃפ·¤Ê¤¤¤À¤í¤¦¡£¤³¤ì¤é¤ÎÌäÂê¤Ï¡¢´ö¤Ä¤«¤ÎÉâÆ°¾®¿ôÅÀÄê¿ô¤Î¤ï¤º¤«¤Êº¹°Û¤Ë¤è¤ë¤â¤Î¤Ç¡¢°Â¿´¤·¤ÆÌµ»ë¤Ç¤­¤ë¤â¤Î¤Ç¤¢¤ë¡£¥¹¥Æ¡¼¥¸ 3 ¤Î¥³¥ó¥Ñ¥¤¥é¤¬Àµ¤·¤¤¤â¤Î¤Ç¤¢¤ë¡£
rs6000-*-aix
powerpc-*-aix
IBM XLC ¥³¥ó¥Ñ¥¤¥é¤Î³Æ¥ê¥ê¡¼¥¹¤Î¿§¡¹¤Ê½é´ü¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢GNU CC ¤Î¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤¬¤Ç¤­¤Ê¤¤¡£¾É¾õ¤È¤·¤Æ¤Ï¡¢stage2 ¤È stage3 ¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Îº¹°Û¤È¡¢libgcc.a ¤¢¤ë¤¤¤Ï enquire ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Î¥¨¥é¡¼¤¬¤¢¤ë¡£ÌäÂ꤬¤¢¤ë¤³¤È¤¬È½ÌÀ¤·¤Æ¤¤¤ë¥ê¥ê¡¼¥¹¤Ï°Ê²¼¤ÎÄ̤ꡣxlc-1.2.1.8¡¢xlc-1.3.0.0 (AIX3.2.5 ¤È¶¦¤ËÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë)¡¢xlc-1.3.0.19 ¤Ç¤¢¤ë¡£xlc-1.2.1.28 ¤È xlc-1.3.0.24 (PTF 432238) ¤Ï¤É¤Á¤é¤âÀµ¤·¤¯Æ°ºî¤¹¤ëGNU CC ¤òÀ¸À®¤Ç¤­¤ë¤³¤È¤¬¤ï¤«¤Ã¤Æ¤¤¤ë¤¬¡¢¤è¤êºÇ¶á¤Î¥ê¥ê¡¼¥¹¤ÎÊý¤¬GNU CC ¤òÀµ¤·¤¯¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤Ç¤­¤ë¡£

¥ê¥ê¡¼¥¹ 4.3.0 ¤Î AIX ¤È AIX 3.2.4 °ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Ë´Þ¤Þ¤ì¤ë IBM ¤Î¥¢¥»¥ó¥Ö¥é¤Ï¡¢¥Ç¥Ð¥Ã¥°¾ðÊ󵿻÷Ì¿Îá¤ò¼õ¤±ÉÕ¤±¤Ê¤¤¡£¤³¤Î¥¢¥»¥ó¥Ö¥é¤ËÂФ¹¤ë½¤Àµ¤ÏPTF ¤È¤·¤ÆÆþ¼ê²Äǽ¤Ç¤¢¤ë¡£¤µ¤é¤Ë¡¢AIX 3.2.5 °Ê¹ß¤ª¤è¤Ó GNU ¥¢¥»¥ó¥Ö¥é¤ò»È¤¦¾ì¹ç¤Ï¡¢GNU C ¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¤¿¤á¤Ë¤Ï¡¢1995ǯ10·î16Æü°Ê¹ß¤Ë½¤Àµ¤µ¤ì¤¿¥Ð¡¼¥¸¥ç¥ó¤Î GNU ¥¢¥»¥ó¥Ö¥é¤¬É¬ÍפǤ¢¤ë¡£°Ê¾å¤ÎÌäÂê¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï README.RS6000 ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò»²¾È¤Î¤³¤È¡£

GNU CC ¤Ï¡¢¤Þ¤À 64¥Ó¥Ã¥È¤Î PowerPC Ì¿Îá¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£

¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï Objective C ¤Ïưºî¤·¤Ê¤¤¡£¸Æ¤Ó½Ð¤·µ¬Ìó¤È¸ß´¹À­¤Î¤Ê¤¤²¾Äê¤ò¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£

RS/6000 ¾å¤Î AIX ¤Ç¤Ï¡¢¹ç½°¹ñ°Ê³°¤Î´Ä¶­¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë(NLS)¡£¥³¥ó¥Ñ¥¤¥é¤È¥¢¥»¥ó¥Ö¥é¤Ï NLS ¤ò»È¤Ã¤Æ¡¢ÉâÆ°¾®¿ôÅÀ¿ô(ÉâÆ°¾®¿ô¡ÖÅÀ¡×¤È¤·¤Æ¡Ö.¡×¤È¡Ö,¡×¤Î¤É¤Á¤é¤ò»È¤¦¤«)¤ò´Þ¤àÍÍ¡¹¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¥í¥±¡¼¥ë¸ÇÍ­¤Îɽ¸½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£GNU CC ¤Ç¥ê¥ó¥¯¤·¤¿¥é¥¤¥Ö¥é¥ê¤¬¡¢¥¢¥»¥ó¥Ö¥é¤¬¼õ¤±ÉÕ¤±¤ë¤Î¤ÈƱ¤¸ÉâÆ°¾®¿ôÅÀ·Á¼°¤òÀ¸À®¤·¤Ê¤¤¤È¤¤¤¦ÌäÂ꤬Êó¹ð¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ÎÌäÂê¤Ë½Ð²ñ¤Ã¤¿¤é¡¢´Ä¶­ÊÑ¿ô LANG ¤ò"C" ¤« "En_US" ¤ËÀßÄꤷ¤Æ¤ß¤ÆÍߤ·¤¤¡£

AIX 4.1 ÍѤǤϡ¢GNU CC ¤¬¥Ð¥¤¥ó¥À(¥ê¥ó¥«)¤òµ¯Æ°¤¹¤ëÊýË¡¤¬ÊѤï¤Ã¤¿¤Î¤Ç¡¢¥ê¥ó¥¯»þ¤Ë¡¢°ÊÁ°¤Ï½Ð¤Ê¤«¤Ã¤¿¡¢¥·¥ó¥Ü¥ë¤¬Æó½ÅÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦·Ù¹ð¤¬¤Ç¤ë¤«¤â¤·¤ì¤Ê¤¤¡£AIX ÍѤΠGNU CC ¤ÇÀ¸À®¤µ¤ì¤¿¥¢¥»¥ó¥Ö¥ê¥Õ¥¡¥¤¥ë¤Ï¡¢¸µ¤Î¥×¥í¥°¥é¥à¤Ë¸ºß¤¹¤ë¡¢¤¢¤ë¼ï¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤È´Ø¿ô¤ÎÀë¸À¤Ë¤Ä¤¤¤Æ¡¢¥·¥ó¥Ü¥ë¤ÎÊ£¿ôÄêµÁ¤ò´Þ¤ó¤Ç¤¤¤ë¡£·Ù¹ð¤¬½Ð¤Æ¤â¡¢¥ê¥ó¥«¤ÏÀµ¤·¤¤¥é¥¤¥Ö¥é¥ê¤ä¼Â¹Ô²Äǽ¤Ê¼Â¹Ô·Á¼°¤òÀ¸À®¤¹¤ë¤Ï¤º¤Ç¤¢¤ë¡£

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢AIX 4.1 ¤Ï Power ¤Ç¤â PowerPC ¤Ç¤â»È¤¨¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£

-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤òconfigure ¤Î¥ª¥×¥·¥ç¥ó --with-cpu-cpu_type ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

powerpc-*-elf
powerpc-*-sysv4
System V.4 ¤Îưºî¤¹¤ë¡¢¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤ÎPowerPC ¥·¥¹¥Æ¥à¡£

-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤òconfigure ¤Î¥ª¥×¥·¥ç¥ó --with-cpu-cpu_type ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

powerpc-*-linux-gnu
Linux ¥Ù¡¼¥¹¤Î GNU ¥·¥¹¥Æ¥à¤Îưºî¤¹¤ë¡¢¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤ÎPowerPC ¥·¥¹¥Æ¥à¡£

-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤òconfigure ¤Î¥ª¥×¥·¥ç¥ó --with-cpu-cpu_type ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

powerpc-*-eabiaix
-mcall-aix ¤¬¥Ç¥Õ¥©¥ë¥È¤ÇÁªÂò¤µ¤ì¤¿¡¢¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤ÎÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¡£

-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤òconfigure ¤Î¥ª¥×¥·¥ç¥ó --with-cpu-cpu_type ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

powerpc-*-eabisim
PSIM ¥·¥ß¥å¥ì¡¼¥¿¤Î²¼¤Çưºî¤µ¤»¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤ÎÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¡£

-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤òconfigure ¤Î¥ª¥×¥·¥ç¥ó --with-cpu-cpu_type ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

powerpc-*-eabi
¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤ÎÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¡£

-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤òconfigure ¤Î¥ª¥×¥·¥ç¥ó --with-cpu-cpu_type ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

powerpcle-*-elf
powerpcle-*-sysv4
System V.4 ¤Îưºî¤¹¤ë¡¢¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤ÎPowerPC ¥·¥¹¥Æ¥à¡£

-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤òconfigure ¤Î¥ª¥×¥·¥ç¥ó --with-cpu-cpu_type ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

powerpcle-*-solaris2*
Solaris 2.5.1 °Ê¹ß¤Îưºî¤¹¤ë¡¢¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤Î PowerPC ¥·¥¹¥Æ¥à¡£

-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤òconfigure ¤Î¥ª¥×¥·¥ç¥ó --with-cpu-cpu_type ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£Sun 4.0 ¥³¥ó¥Ñ¥¤¥é¤Î¥Ù¡¼¥¿ÈÇ¤Ç¤Ï GNU CC ¤òÀµ¤·¤¯¹½ÃۤǤ­¤Ê¤¤¤è¤¦¤À¡£¤Þ¤¿¡¢¥Û¥¹¥È¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤Ë¤âÌäÂ꤬¤¢¤ë¡£¤³¤ÎÌäÂê¤ÏGNU ÈǤǤ³¤ì¤é¤Î¥Ä¡¼¥ë¤òÃÖ¤­´¹¤¨¤ë¤³¤È¤ÇÂнè¤Ç¤­¤ë¡£

powerpcle-*-eabisim
PSIM ¥·¥ß¥å¥ì¡¼¥¿¤Î²¼¤Çưºî¤µ¤»¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤ÎÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¡£
powerpcle-*-eabi
¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤ÎÁȤ߹þ¤ß PowerPC ¥·¥¹¥Æ¥à¡£

-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤òconfigure ¤Î¥ª¥×¥·¥ç¥ó --with-cpu-cpu_type ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

powerpcle-*-winnt
powerpcle-*-pe
Windows NT ¤Îưºî¤¹¤ë¡¢¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥â¡¼¥É¤Î PowerPC ¥·¥¹¥Æ¥à¡£

-mcpu=cpu_type ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤òconfigure ¤Î¥ª¥×¥·¥ç¥ó --with-cpu-cpu_type ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

vax-dec-ultrix
Vax C(vcc) ¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£(Î㤨¤Ð¡¢alloca ¤¬»È¤ï¤ì¤¿¾ì¹ç¤Ë)Àµ¤·¤¯¤Ê¤¤¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤¢¤ë¡£

°ìÊý¡¢pcc ¤Ç cp/parse.c ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤Ï¡¢pcc ¤ÎÆâÉô¥Æ¡¼¥Ö¥ë¤ÎÂ礭¤µ¤ÎÀ©¸Â¤Î¤¿¤á¡¢¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¡£¤³¤ÎÌäÂê¤òÈò¤±¤ë¤Ë¤Ï¡¢GNU C ¥³¥ó¥Ñ¥¤¥é¤À¤±¤ò¤Þ¤º¥³¥ó¥Ñ¥¤¥ë¤·¡¢¤½¤ì¤ò»È¤Ã¤Æ¡¢É¬ÍפÊÁ´¤Æ¤Î¸À¸ì¥Õ¥í¥ó¥È¥¨¥ó¥É¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤¬Îɤ¤¡£

sparc-sun-*
Sun ¤Î¥·¥¹¥Æ¥à¤Ç¤Î GNU CC ¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢Sun Install ¤ò»²¾È¤Î¤³¤È¡£
vax-dec-vms
VMS ¤Ø¤Î GNU CC ¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢VMS Install ¤ò»²¾È¤Î¤³¤È¡£
we32k-*-*
¤³¤Î·×»»µ¡¤Ï¡¢3b2¡¢3b5¡¢3b20¡¢¤½¤Î¾Îà»÷¤Î̾Á°¤Ç¤âÃΤé¤ì¤Æ¤¤¤ë¡£(¤¿¤À¤·¡¢3b1 ¤Ï¼ÂºÝ¤Ë¤Ï 68000 ¤Ç¤¢¤ë¡£Configurations »²¾È¡£)

¥·¥¹¥Æ¥à¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ï -g ¤ò»È¤ï¤Ê¤¤¤³¤È¡£¥·¥¹¥Æ¥à¤Î¥ê¥ó¥«¤¬¡¢¥Ç¥Ð¥Ã¥°¾ðÊ󤬤Ĥ¤¤¿¡¢¤³¤Î¤è¤¦¤ÊÂ礭¤Ê¥×¥í¥°¥é¥à°·¤¨¤Ê¤¤¤è¤¦¤Ç¤¢¤ë¡£

¥·¥¹¥Æ¥à¤Î¥³¥ó¥Ñ¥¤¥é¤Ï¡¢GNU CC ¤Î stmt.c ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë¡¢Ç½ÎϤò±Û¤¨¤Æ¤·¤Þ¤¦¡£¤³¤ì¤ò²óÈò¤¹¤ë¤Ë¤Ï¡¢GNU CC ¤Ë¤¢¤ë cpp ¤ò¤Þ¤º¹½ÃÛ¤·¡¢¥·¥¹¥Æ¥à¤Î¥×¥ê¥×¥í¥»¥Ã¥µ¤ÎÂå¤ï¤ê¤Ë¡¢¥·¥¹¥Æ¥à¤Î C ¥³¥ó¥Ñ¥¤¥é¤ÈÁȤ߹ç¤ï¤»¤Æ stmt.c ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£°Ê²¼¤Ë¤½¤ÎÊýË¡¤ò¼¨¤¹¡£

mv /lib/cpp /lib/cpp.att
cp cpp /lib/cpp.gnu
echo '/lib/cpp.gnu -traditional ${1+"$@"}' > /lib/cpp
chmod +x /lib/cpp

¥·¥¹¥Æ¥à¤Î¥³¥ó¥Ñ¥¤¥é¤Ï¡¢GNU CC ¤ÎºÇŬ²½¥Õ¥¡¥¤¥ë¤Î´ö¤Ä¤«¤Ë¤Ä¤¤¤ÆÀµ¤·¤¯¤Ê¤¤¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¤³¤Î¤¿¤á¡¢¥¹¥Æ¡¼¥¸ 2 ¥³¥ó¥Ñ¥¤¥é¤ÏºÇŬ²½¤Ê¤·¤Ç¹½ÃÛ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤Î¸å¡¢¥¹¥Æ¡¼¥¸ 3 ¥³¥ó¥Ñ¥¤¥é¤òºÇŬ²½ÉÕ¤­¤Ç¹½ÃÛ¤¹¤ë¡£¤½¤ì¤Ç½ÐÍè¾å¤¬¤Ã¤¿¼Â¹Ô·Á¼°¤Ïưºî¤¹¤ë¤Ï¤º¤Ç¤¢¤ë¡£°Ê²¼¤Ë¼Â¹Ô¤¹¤Ù¤­¥³¥Þ¥ó¥É¤ò¼¨¤¹¡£

make LANGUAGES=c CC=stage1/xgcc CFLAGS="-Bstage1/ -g"
make stage2
make CC=stage2/xgcc CFLAGS="-Bstage2/ -g -O"

C++ ¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¤Ë¤Ï ULIMIT ¤ÎÀßÄê¤ò¾å¤²¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£½ÐÍè¾å¤¬¤Ã¤¿ cc1puls ¤Ï¡¢1¥á¥¬¥Ð¥¤¥È¤ò±Û¤¨¤ë¤Î¤Ç¡£


Node:Other Dir, Next:, Previous:Configurations, Up:Installation

Ê̥ǥ£¥ì¥¯¥È¥ê¤Ç¤Î¥³¥ó¥Ñ¥¤¥ëÊýË¡

¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¡¢¥½¡¼¥¹¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤È¤ÏÊ̤Υǥ£¥ì¥¯¥È¥ê¤Ëºî¤ê¤¿¤¤¾ì¹ç¤Ï¡¢°Ê²¼¤ÎÉôʬ¤Ç¼ê½ç¤¬°Û¤Ê¤ë¡£

  1. VPATH ¤Îµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë Make ¤¬É¬ÍפǤ¢¤ë¡£(GNU Make ¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ÂçÄñ¤Î BSD ¥·¥¹¥Æ¥à¤Î Make ¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£)
  2. ¥½¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤Ç configure ¤ò¼Â¹Ô¤·¤¿¤³¤È¤¬¤¢¤ë¤Ê¤é¡¢¤½¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò¼è¤ê¾Ã¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤Î¤¿¤á¤Ë¤Ï°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¡£
    make distclean
    
  3. configure ¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢¥³¥ó¥Ñ¥¤¥é¤òºîÀ®¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Üư¤¹¤ë¡£
    mkdir gcc-sun3
    cd gcc-sun3
    

    ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥½¡¼¥¹¥³¡¼¥É¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÈƱ¤¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

  4. configure ¤¬¤É¤³¤Ë¤¢¤ë¤Î¤«¤ò¼Â¹Ô»þ¤Ë»ØÄꤷ¤Æ¤ä¤ë¡£
    ../gcc/configure ...
    

    ¤³¤ì¤Ç¤â configure ¤Ë¥³¥ó¥Ñ¥¤¥é¤Î¥½¡¼¥¹¤¬¤É¤³¤Ë¤¢¤ë¤Î¤«¤ò¶µ¤¨¤¿¤³¤È¤Ë¤Ê¤ë¡£configure ¤Ï¡¢¼«Ê¬¤¬µ¯Æ°¤µ¤ì¤¿¤È¤­¤Î¥Õ¥¡¥¤¥ë̾¤«¤é¥Ç¥£¥ì¥¯¥È¥ê¤ò¼è¤ê½Ð¤¹¤«¤é¤Ç¤¢¤ë¡£¤³¤Î»ØÄê¤ò³Î¼Â¤Ë¤·¤¿¤±¤ì¤Ð¡¢--srcdir ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥½¡¼¥¹¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ì¤ÐÎɤ¤¡£

    ../gcc/configure --srcdir=../gcc other options
    

    --srcdir ¤Ç»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬¡¢configure ¤Î¸ºß¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÈƱ¤¸¤Ç¤¢¤ëɬÍפϤʤ¤¡£

¤³¤ì¤Ç¡¢make ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ÉáÄ̤Υ½¡¼¥¹¥Õ¥¡¥¤¥ë¤ËÊѹ¹¤¬¤¢¤Ã¤Æ¤â¡¢¾åµ­¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Î¼ê½ç¤ò·«¤êÊÖ¤¹É¬ÍפϤʤ¤¡£¤·¤«¤·¡¢¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤¿¾ì¹ç¤Ï¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï¡¢configure ¤òºÆ¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¡£


Node:Cross-Compiler, Next:, Previous:Other Dir, Up:Installation

¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤Î¹½Ãۤȥ¤¥ó¥¹¥È¡¼¥ë¤ÎÊýË¡

GNU CC ¤Ï¡¢Â¿¤¯¤Îµ¡¼ï¤ËÂФ·¤Æ¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æµ¡Ç½¤¹¤ë¤¬¡¢Á´Éô¤Îµ¡¼ï¤ËÂФ·¤Æ¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¡£

GNU CC ¤Ï¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤òÀ¸À®¤¹¤ë¤Î¤Ç¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤òºî¤ë¤Ë¤Ï¡¢¤ª¤½¤é¤¯¡¢GNU CC ¤¬¼Â¹Ô¤µ¤»¤ë¤³¤È¤Î¤Ç¤­¤ë¥¯¥í¥¹¥¢¥»¥ó¥Ö¥é¤¬É¬Íפˤʤ롣¥¿¡¼¥²¥Ã¥Èµ¡¼ï°Ê³°¤Î¥Þ¥·¥ó¤Ç¥ê¥ó¥¯¤ò¹Ô¤Ê¤¤¤¿¤±¤ì¤Ð¡¢Æ±Íͤ˥¯¥í¥¹¥ê¥ó¥«¤âɬÍפˤʤ롣¤Þ¤¿¡¢¥Û¥¹¥È¥Þ¥·¥ó¤Ë¥¤¥ó¥¹¥È¡¼¥ë²Äǽ¤Ê¥¿¡¼¥²¥Ã¥Èµ¡¼ïÍѤΥإåÀ¥Õ¥¡¥¤¥ë¤È¥é¥¤¥Ö¥é¥ê¤âɬÍפˤʤ롣


Node:Steps of Cross, Next:, Previous:Cross-Compiler, Up:Cross-Compiler

¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤Î¥¹¥Æ¥Ã¥×

¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò»È¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¡¢¼Â¹Ô¤¹¤ë¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤ÊÃʳ¬¤ò·Ð¤ëɬÍפ¬¤¢¤ë¡£

ÂçÂΤξì¹ç¤Ï¡¢Æ±¤¸¥Û¥¹¥È¥Þ¥·¥ó¾å¤ÇÁ´Éô¤ä¤Ã¤Æ¤·¤Þ¤¦¤Î¤¬´Êñ¤Ç¤¢¤ë¡£¤È¤¤¤¦¤Î¤Ï¡¢GNU CC ¤ò°ì²óµ¯Æ°¤¹¤ë¤À¤±¤ÇºÑ¤ó¤Ç¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¤Ë¤Ï¡¢Å¬Åö¤Ê¥¯¥í¥¹¥¢¥»¥ó¥Ö¥é¤ä¥¯¥í¥¹¥ê¥ó¥«¤¬É¬ÍפǤ¢¤ë¡£´ö¤Ä¤«¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¡¢GNU ¥¢¥»¥ó¥Ö¥é¤È GNU ¥ê¥ó¥«¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¡£


Node:Configure Cross, Next:, Previous:Steps of Cross, Up:Cross-Compiler

¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó

GNU CC ¤ò¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ¹½ÃÛ¤¹¤ë¤Ë¤Ï¡¢configure ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤«¤é»Ï¤á¤ë¡£--target=target ¤ò»È¤Ã¤Æ¥¿¡¼¥²¥Ã¥È¤ò»ØÄꤹ¤ë¡£configure ¤¬»È¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤òÀµ¤·¤¯Ç§¼±¤·¤Ê¤¤¤È¤­¤Ï¡¢--build=build ¤â¹ç¤ï¤»¤Æ»ØÄꤹ¤ë¡£°Ê²¼¤ÎÎã¤Ç¤Ï¡¢HP ¤Î 68030 ¤ò»È¤Ã¤¿ BSD ¥·¥¹¥Æ¥à¸þ¤±¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤ì¤Ï¡¢configure ¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤¬Àµ¤·¤¯Ç§¼±¤µ¤ì¤ë¾ì¹ç¤Ç¤¢¤ë¡£

./configure --target=m68k-hp-bsd4.3


Node:Tools and Libraries, Next:, Previous:Configure Cross, Up:Cross-Compiler

¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥éÍѤΥġ¼¥ë¤È¥é¥¤¥Ö¥é¥ê

¥¯¥í¥¹¥¢¥»¥ó¥Ö¥é¤È¥¯¥í¥¹¥ê¥ó¥«¤¬ÍøÍѤǤ­¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¤³¤³¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡£/usr/local/target/bin ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤³¤ì¤é¤òÃÖ¤¯¡£¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¯¤Ù¤­¥Ä¡¼¥ë¤Î°ìÍ÷¤ò°Ê²¼¤Ë¼¨¤¹¡£

as
¥¯¥í¥¹¥¢¥»¥ó¥Ö¥é¡£
ld
¥¯¥í¥¹¥ê¥ó¥«¡£
ar
¥¯¥í¥¹¥¢¡¼¥«¥¤¥Ð¡£¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Î·Á¼°¤Ç¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë(¥é¥¤¥Ö¥é¥ê) ¤òÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡£
ranlib
¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Î¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òºî¤ë¥×¥í¥°¥é¥à¡£

GNU CC ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¤­¡¢¾åµ­¤Î¥×¥í¥°¥é¥à¤ò¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤«¤éõ¤·¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤¬¸å¤Ç¼Â¹Ô¤¹¤ë¤È¤­¤Ëõ¤¹Å¬Àڤʾì½ê¤Ë¥³¥Ô¡¼¤¹¤ë¤«¥ê¥ó¥¯¤òÄ¥¤ë¡£

¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤òÍѰդ¹¤ë°ìÈÖ´Êñ¤ÊÊýË¡¤Ï¡¢Binutils ¥Ñ¥Ã¥±¡¼¥¸¤ÈGAS ¤ò¹½ÃÛ¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î¥Ä¡¼¥ë¤ò¡¢GNU CC ¤ò¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤¹¤ë¤Î¤Ë»È¤Ã¤¿¤Î¤ÈƱ¤¸ --host ¥ª¥×¥·¥ç¥ó¤È --target ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤¹¤ë¤è¤¦¤Ë¤·¡¢¹½Ãۤȥ¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤Ê¤¦¡£¤³¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ç¡¢Binutils ¤ä GAS ¤Î¼Â¹Ô·Á¼°¤¬¼«Æ°Åª¤ËŬÀڤʥǥ£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë¡£¤¿¤À¡¢»Äǰ¤Ê¤³¤È¤Ë¡¢Binutils ¤ä GAS ¤Ï¡¢GNU CC ¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥¿¡¼¥²¥Ã¥È¤ÎÁ´¤Æ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£

ɸ½à C ¥é¥¤¥Ö¥é¥ê¤Î¤è¤¦¤Ê¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¶¦¤Ë»È¤¦¥é¥¤¥Ö¥é¥ê¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤é¤ò /usr/local/target/lib ¤ËÃÖ¤¯¤³¤È¡£GNU CC ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¤¬¡¢GNU CC ¤¬¸¡º÷¤·¤Æ¥ê¥ó¥¯¤ò¹Ô¤Ê¤¦Àµ¤·¤¤¾ì½ê¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£°Ê²¼¤Ë¡¢¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤«¤é¥é¥¤¥Ö¥é¥ê¤ò´ö¤Ä¤«¥³¥Ô¡¼¤¹¤ëÎã¤ò¼¨¤¹¡£

ftp target-machine
lcd /usr/local/target/lib
cd /lib
get libc.a
cd /usr/lib
get libg.a
get libm.a
quit

ɬÍפˤʤë¥é¥¤¥Ö¥é¥ê¤ÎÀµ³Î¤ÊÁȤȡ¢¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¾å¤Ç¤Î°ÌÃ֤ϡ¢¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤ËÈó¾ï¤Ë°Í¸¤¹¤ë¡£

¿¤¯¤Îµ¡¼ï¤Ç¤Ï¡¢crt0.o ¤ä crtn.o ¤Î¤è¤¦¤Ê¡¢³Æ¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤Ë¥ê¥ó¥¯¤µ¤ì¤ë¡Ö³«»Ï¥Õ¥¡¥¤¥ë¡×¤òɬÍפȤ¹¤ë¡£¤³¤ÎÆó¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢/usr/local/target/lib ¤Ë¸ºß¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£crt0.o ¤Ë¤ÏÊ£¿ô¤ÎÊѼ郎¸ºß¤¹¤ë²Äǽ¤»¤¤¤¬¤¢¤ë¡£¤³¤ì¤Ï¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤ä¾¤Î¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó¤Ë±þ¤¸¤Æ»È¤ï¤ì¤ë¡£¥¿¡¼¥²¥Ã¥È¤Î STARTFILE_SPEC ¤ÎÄêµÁ¤ò¸«¤Æ¡¢¤É¤¦¤¤¤¦³«»Ï¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¤¤¤ë¤«¤ò¸«¤ÆÍߤ·¤¤¡£°Ê²¼¤Ë¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤«¤é¥³¥Ô¡¼¤¹¤ëÊýË¡¤ÎÎã¤ò¼¨¤¹¡£

ftp target-machine
lcd /usr/local/target/lib
prompt
cd /lib
mget *crt*.o
cd /usr/lib
mget *crt*.o
quit


Node:Cross Runtime, Next:, Previous:Tools and Libraries, Up:Cross-Compiler

libgcc.a ¤È¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é

GNU CC ¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤Ï¡¢·è¤Þ¤Ã¤¿¼Â¹Ô»þ¥µ¥Ý¡¼¥È´Ø¿ô¤ò°ÅÌۤ˻Ȥ¦¡£¤³¤Î¤¦¤Á¤Î´ö¤Ä¤«¤Î´Ø¿ô¤Ï¡¢GNU CC ¼«¿È¤ÇÌäÂê¤Ê¤¯¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¤Î¤À¤¬¡¢´ö¤Ä¤«¤Ç¤­¤Ê¤¤¤â¤Î¤¬¤¢¤ë¡£ÌäÂê¤È¤Ê¤ë´Ø¿ô¤Ï¥½¡¼¥¹¥Õ¥¡¥¤¥ë libgcc1.c ¤Ë¤¢¤ë¤â¤Î¤Ç¤¢¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤«¤éºî¤é¤ì¤ë¥é¥¤¥Ö¥é¥ê¤Ï libgcc1.a ¤È¸Æ¤Ð¤ì¤ë¡£

¥Í¥¤¥Æ¥£¥Ö¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¤È¤­¤Ï¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï²¿¤«Â¾¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¡£¤½¤Î¥³¥ó¥Ñ¥¤¥é¤È¤ÏGNU CC ¤ò¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤¹¤ë¤Î¤Ë»È¤Ã¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡£¤ª¤½¤é¤¯¡¢¤½¤Î¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¤³¤ì¤é¤Î±é»»¤ò³«¤«¤ì¤¿¥³¡¼¥É¤Ç½ñ¤¯ÊýË¡¤òÃΤäƤ¤¤ë¤À¤í¤¦¤·¡¢¤¢¤ë¤¤¤Ï¡¢¤½¤Îµ¡¼ï¤ËÉÕ¤¤¤Æ¤¯¤ë¤Ï¤º¤Î¼Â¹Ô»þ¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥óµ¡Ç½¤ò¸Æ¤Ó½Ð¤¹ÊýË¡¤òÃΤäƤ¤¤ë¤À¤í¤¦¡£¤À¤¬¡¢¤³¤ÎÊýË¡¤Ï¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¾ì¹ç¤Ë¤Ï»È¤¨¤Ê¤¤¡£¹½Ãۤ˻Ȥ¦¥³¥ó¥Ñ¥¤¥é¤Ï¥Û¥¹¥È¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¤ÏÃΤäƤ¤¤ë¤¬¡¢¥¿¡¼¥²¥Ã¥È¥·¥¹¥Æ¥à¤Î¤³¤È¤ÏÃΤé¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

¤³¤Î¤¿¤á¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ëºÝ¤Ë¤Ï¡¢´üÂÔ¤µ¤ì¤ë»Å»ö¤ò¹Ô¤Ê¤¦Å¬Àڤʥ饤¥Ö¥é¥ê libgcc1.a ¤òÍѰդ¹¤ëɬÍפ¬¤¢¤ë¡£

libgcc1.c ¤ò¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¼«ÂΤǥ³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤Ï¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë´Ø¿ô·²¤Ï¡¢GNU CC ¤¬ÆÉ¼Ô¤Î¥¿¡¼¥²¥Ã¥Èµ¡¼ïÍѤˤϤɤ¦¤ä¤Ã¤Æ³«¤«¤ì¤¿·Á¤Ç¥³¡¼¥É¤ò½ñ¤±¤ÐÎɤ¤¤«ÃΤé¤Ê¤¤¤è¤¦¤Ê»»½Ñ±é»»¤ò¼ÂÁõ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¤ÈÁÛÄꤵ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤é¤Î´Ø¿ô¤ò GNU CC ¼«ÂΤǥ³¥ó¥Ñ¥¤¥ë¤·¤¿¤Ê¤é¡¢Ìµ¸Â¤ËºÆµ¢Åª¤Ê¥³¥ó¥Ñ¥¤¥ë¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£

Ǥ°Õ¤ÎÍ¿¤¨¤é¤ì¤¿¥¿¡¼¥²¥Ã¥È¤Ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤Î¤Û¤È¤ó¤É¤ÏɬÍפǤϤʤ¤¡£GNU CC ¤¬¡¢»»½Ñ±é»»¤ò³«¤¤¤¿¥³¡¼¥É¤Ë½ñ¤±¤ë¤Ê¤é¡¢¤³¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤µ¤Ê¤¤¡£ÆÉ¼Ô¤Î¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç¡¢¤³¤ì¤é¤Î´Ø¿ô¤ò°ìÀÚɬÍפȤ·¤Ê¤¤¤È¤¤¤¦¤Î¤â²Äǽ¤Ç¤¢¤ë¡£¤½¤Î¾ì¹ç¤Ï¡¢libgcc1.a ¤È¤·¤Æ¶õ¤Î¥é¥¤¥Ö¥é¥ê¤òÍ¿¤¨¤ì¤ÐÎɤ¤¡£

¿¤¯¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¡¢¥µ¥Ý¡¼¥È¤¬É¬Íפʥ饤¥Ö¥é¥ê¤Ï¡¢¾è»»¤È½ü»»ÍѤΤâ¤Î¤Î¤ß¤Ç¤¢¤ë¡£¾è»»¤È½ü»»¤ò¹Ô¤¦´Ø¿ô¤ò´Þ¤à¥é¥¤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¤Î¤Ê¤é¡¢MULSI3_LIBCALL Åù¤Î¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤³¤È¤Ç¡¢GNU CC ¤ËľÀܸƽФ·¤ò¹Ô¤ï¤»¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¡¢¥¿¡¼¥²¥Ã¥Èµ­½Ò¥Þ¥¯¥í¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¡£´ö¤Ä¤«¤Î¥¿¡¼¥²¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢´û¤ËÄêµÁºÑ¤ß¤Ç¤¢¤ë¡£¤³¤ì¤Ç libgcc1.a ¤òÉÔÍפȤ¹¤ë¤Î¤Ë¤Ï½¼Ê¬¤Ç¤¢¤ë²ÄǽÀ­¤¬¤¢¤ë¡£¤â¤·¤½¤¦¤Ê¤é¡¢¶õ¤Î¥é¥¤¥Ö¥é¥ê¤ò»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£

¥¿¡¼¥²¥Ã¥È¤Ë¤è¤Ã¤Æ¤Ï¡¢ÉâÆ°¾®¿ôÅÀÌ¿Î᤬¤Ê¤¤¤â¤Î¤¬¤¢¤ë¡£¤³¤ì¤é¤Îµ¡¼ï¤Ç¤Ï libgcc1.a Æâ¤ÎÊ̤δؿô¤¬É¬Íפˤʤ롣¤½¤ì¤Ï¡¢ÉâÆ°¾®¿ôÅÀ»»½Ñ±é»»¤ò¹Ô¤¦¤â¤Î¤À¤¨¤ë¡£GNU CC ¤ÎºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï¡¢ÉâÆ°¾®¿ôÅÀ±é»»¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£¤¢¤ëÄøÅÙºî¶È¤ò¹Ô¤¨¤Ð¡¢libgcc1.a ¤È¤·¤Æ»È¤¨¤ëÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥¿¤òºî¤ê¾å¤²¤ë¤³¤È¤¬½ÐÍè¤ë¤Ï¤º¤Ç¤¢¤ë¡£¤ª¤½¤é¤¯¡¢¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¤³¤Îºî¶È¤ò¼«Æ°Åª¤Ë´Êñ¤Ë¹Ô¤¦¥³¡¼¥É¤¬Æþ¤ë¤À¤í¤¦¡£Æþ¤ë¤«¤É¤¦¤«¤Ï¡¢¼ÂÁõ¤·¤¿¤¤¤È¤¤¤¦¿Í¤¬Ã¯¤«¤¤¤ë¤«¤É¤¦¤«¤Ë°Í¤ë¡£

ÁȤ߹þ¤ß¥¿¡¼¥²¥Ã¥È¤ÎÃæ¤Ë¤Ï¡¢ libgcc1.a ¤ÎɬÍפÊÁ´¤Æ¤Î¥ë¡¼¥Á¥ó¤ò C ¤Þ¤¿¤Ï¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤¤¤¿¤â¤Î¤¬ÉÕ¤¤¤Æ¤¯¤ë¤â¤Î¤¬¤¢¤ë¡£¤³¤ì¤é¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¡¢libgcc1.a ¤ò¼«Æ°Åª¤Ë¹½ÃÛ¤¹¤ë¤Î¤Ç¡¢ÆÉ¼Ô¤Ï²¿¤âÆÃÊ̤ʤ³¤È¤ò¤¹¤ëɬÍפ¬¤Ê¤¤¡£¤½¤Î¾¤ÎÁȤ߹þ¤ß¥¿¡¼¥²¥Ã¥È¤Ï¡¢¤Ê¤ó¤é libgcc1.a ¤òɬÍפȤ·¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢É¬Íפʱ黻¤ÏÁ´¤Æ¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤ê¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£

ÆÉ¼Ô¤Î¥¿¡¼¥²¥Ã¥È¥·¥¹¥Æ¥à¤Ë²¿¤«Ê̤ΠC ¥³¥ó¥Ñ¥¤¥é¤¬¤¢¤ë¤Ê¤é¡¢GNU CC ¤ò¤½¤Îµ¡¼ï¤Ç¤Î¥Í¥¤¥Æ¥£¥Ö¡¦¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤·¡¢make libgcc1.a ¤Ç libgcc1.a ¤ò¹½ÃÛ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ê¡¢¤½¤Î·ë²ÌÆÀ¤é¤ì¤ë¥Õ¥¡¥¤¥ë¤ò¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¶¦¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¤¿¤á¤Ë¤Ï¡¢¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç°Ê²¼¤Î¼ê½ç¤ò¼Â¹Ô¤¹¤ë¡£

cd target-build-dir
./configure --host=sparc --target=sun3
make libgcc1.a

¼¡¤Ë°Ê²¼¤ò¥Û¥¹¥Èµ¡¼ï¤Ç¼Â¹Ô¤¹¤ë¡£

ftp target-machine
binary
cd target-build-dir
get libgcc1.a
quit

libgcc1.a ¤ÇɬÍפȤµ¤ì¤ë´Ø¿ô¤òÄ󶡤¹¤ë¤â¤¦°ì¤Ä¤ÎÊýË¡¤È¤·¤Æ¡¢¤½¤ì¤é¤Î´Ø¿ô¤ËÂФ·¤Æ perform_... ¥Þ¥¯¥í¤òŬÀÚ¤ËÄêµÁ¤¹¤ëÊýË¡¤¬¤¢¤ë¡£¤³¤ì¤é¤Î¥Þ¥¯¥íÄêµÁ¤Ç¡¢¤³¤ì¤«¤é¼ÂÁõ¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤Þ¤µ¤Ë¤½¤Î C ¤Î»»½Ñ±é»»»Ò¤ò»È¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ÆÉ¼Ô¤¬¹½ÃÛÃæ¤Î¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤ë¤Ï¤º¤Ç¤¢¤ë¡£(¤³¤ì¤é¤ÎÄêµÁ¤¬ÆÉ¼Ô¤Î¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë¤Ë´û¤Ë¸ºß¤¹¤ë¤Ê¤é¡¢É¬Íפʤâ¤Î¤Ï·¤Ã¤¿¤³¤È¤Ë¤Ê¤ë¡£)

perform_... ¥Þ¥¯¥í¤ò»È¤Ã¤Æ libgcc1.a ¤ò¹½ÃÛ¤¹¤ë¤Ë¤Ï¡¢GNU CC ¤ò¹½ÃÛ¤¹¤ë¤È¤­¤Ë LIBGCC1=libgcc1.a OLDCC=./xgcc ¤È¤¹¤ë¡£¤½¤¦¤·¤Ê¤¤¾ì¹ç¤Ï¡¢make ¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¡¢Âå¤ï¤ê¤Î¥é¥¤¥Ö¥é¥ê¤òlibgcc1.a ¤È¤¤¤¦Ì¾Á°¤ÇÃÖ¤¯É¬Íפ¬¤¢¤ë¡£


Node:Cross Headers, Next:, Previous:Cross Runtime, Up:Cross-Compiler

¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë

ñÂÎ¤Î¥×¥í¥°¥é¥à¤äÁȤ߹þ¤ß¥·¥¹¥Æ¥à¸þ¤±¤Î¥×¥í¥°¥é¥à¤ò¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ï¡¢GNU CC ¤Î°ìÉô(¤½¤ì¤ËÆÉ¼Ô¤Î¥×¥í¥°¥é¥à¤Î°ìÉô)¤Ç¤¢¤ë¤â¤Î¤ò½ü¤¤¤Æ¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï²¿¤âɬÍפʤ¤¤À¤í¤¦¡£¤·¤«¤·¡¢ÆÉ¼Ô¤Î¥×¥í¥°¥é¥à¤ò libc.a ¤Î¤è¤¦¤Êɸ½à C ¥é¥¤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢¤½¤Î¥é¥¤¥Ö¥é¥ê¤ËÉÕ°¤¹¤ë¤Ï¤º¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£

GNU C ¥³¥ó¥Ñ¥¤¥é¤Ë¤Ï¤³¤¦¤¤¤¦¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏÉÕ¤¤¤Æ¤¤¤Ê¤¤¡£²¿¸Î¤Ê¤é¡¢(1) ¥·¥¹¥Æ¥à¤Ë°Í¸¤¹¤ë¤â¤Î¤Ç¤¢¤ê¡¢(2) C ¥é¥¤¥Ö¥é¥ê¤Ë½ê°¤¹¤ë¤â¤Î¤Ç¤¢¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤Ë½ê°¤¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

GNU C ¥é¥¤¥Ö¥é¥ê¤¬ÆÉ¼Ô¤ÎÂоݵ¡¼ï¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤Ê¤é¡¢¤½¤³¤«¤é¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òÆþ¼ê¤Ç¤­¤ë(ÆÉ¼Ô¤Î¥×¥í¥°¥é¥à¤ò¥ê¥ó¥¯¤¹¤ë¤È¤­¤Ë¼ÂºÝ¤Ë GNU ¥é¥¤¥Ö¥é¥ê¤ò»È¤¦¤³¤È¤òÁÛÄꤷ¤¿¾ì¹ç)¡£

ÆÉ¼Ô¤ÎÂоݵ¡¼ï¤Ë C ¥³¥ó¥Ñ¥¤¥é¤¬ÉÕ¤¤¤Æ¤¤¤ë¤Ê¤é¡¢¤ª¤½¤é¤¯Å¬ÀڤʥإåÀ¥Õ¥¡¥¤¥ë¤âÉÕ¤¤¤Æ¤¯¤ë¤Ï¤º¤Ç¤¢¤ë¡£¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥Û¥¹¥È¥Þ¥·¥ó¤«¤é¥¢¥¯¥»¥¹¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤«¤é¤â»È¤¨¤ë¡£

¤½¤¦¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤Ê¤¦¤Ë¤ÏÆÉ¼Ô¼«¿È¤¬¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òÍѰդ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

ŬÅö¤Ê¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤Ã¤¿¤Ê¤é¡¢¤½¤ì¤ò¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ëÁ°¤Ë¡¢¥Ç¥£¥ì¥¯¥È¥ê /usr/local/target/include ¤ËÃÖ¤¯¡£¤½¤¦¤·¤Æ¤ª¤¯¤È¡¢¥¤¥ó¥¹¥È¡¼¥ë¤ÎºÝ¤Ë fixincludes ¤¬Àµ¤·¤¯¼Â¹Ô¤µ¤ì¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î½¤ÀµÈǤò GNU CC ¤¬»ÈÍѤ¹¤ë¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¡£

¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ï¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ëÁ°¤ËÍѰդ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¹½ÃÛ¤ÎÃʳ¬¤Ç¡¢¼ÂºÝ¤Ë¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¼Â¹Ô¤·¤Æ libgcc.a ¤Î°ìÉô¤òÀ¸À®¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£(¤³¤ì¤é¤Ï¡¢GNU CC ¤Ç¥³¥ó¥Ñ¥¤¥ë²Äǽ¤Ê°ìÉô¤Ç¤¢¤ë¡£) ¤³¤Î°ìÉô¤ÏŬÀڤʥإåÀ¥Õ¥¡¥¤¥ë¤òɬÍפȤ¹¤ë¡£

°Ê²¼¤Ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤«¤é¥³¥Ô¡¼¤¹¤ëÊýË¡¤ÎÎã¤ò¼¨¤¹¡£¥¿¡¼¥²¥Ã¥Èµ¡¼ï¾å¤Ç¤Þ¤º°Ê²¼¤ò¼Â¹Ô¤¹¤ë¡£

(cd /usr/include; tar cf - .) > tarfile

¼¡¤Ë¥Û¥¹¥È¥Þ¥·¥ó¤Ç°Ê²¼¤ò¼Â¹Ô¤¹¤ë¡£

ftp target-machine
lcd /usr/local/target/include
get tarfile
quit
tar xf tarfile


Node:Build Cross, Previous:Cross Headers, Up:Cross-Compiler

¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¹½ÃۤμºÝ

¤è¤¦¤ä¤¯¡¢°ì¸Ä¤Îµ¡¼ï¸þ¤±¤Î¥³¥ó¥Ñ¥¤¥é¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤Ë¡¢¥¹¥Æ¡¼¥¸ 1 ¤ò¹½ÃÛ¤¹¤ëÃʳ¬¤Ë¿Ê¤à¤³¤È¤¬¤Ç¤­¤ë¡£ÆÉ¼Ô¤¬²¿¤é¤«¤Î libgcc1.a ¤òÍѰդ·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤òɬÍפȤ¹¤ë»þÅÀ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¬»ß¤Þ¤ê¡¢Å¬Àڤʥ¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¤À¤í¤¦¡£libgcc1.a ¤òÍѰդ·¤Æ¤¤¤ì¤Ð¡¢¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¤È¡¢libgcc1-test ¤È¤¤¤¦¥Æ¥¹¥È¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¡¢¥ê¥ó¥¯¤¹¤ë¤Ï¤º¤Ç¤¢¤ë¡£¤³¤Î¥ê¥ó¥¯¤ÎºÝ¤Ë¡¢¥¨¥é¡¼¤¬½Ð¤¿¤Ê¤é¡¢libgcc1.a ¤ÎÃæ¤ËɬÍפʥ롼¥Á¥ó¤¬Á´Éô¤Ï·¤Ã¤Æ¤¤¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£

ÆÉ¼Ô¤Ï¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë float.h ¤òÄ󶡤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤Î¤¿¤á¤Î°ì¤Ä¤ÎÊýË¡¤Ï¡¢¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç enquire ¤ò¥³¥ó¥Ñ¥¤¥ë¤·¡¢¼Â¹Ô¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£enquire ¤¬¤ä¤ë¤³¤È¤Ï¡¢¥¿¡¼¥²¥Ã¥Èµ¡¼ï¾å¤Ç¼Â¹Ô¤·¤Æ¡¢¼Â¸³¤Ë¤è¤ê¡¢¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤ÎÉâÆ°¾®¿ôÅÀɽ¸½¤ÎÀ­¼Á¤òÌÀ¤é¤«¤Ë¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£enquire ¤Ïȯ¸«¤·¤¿·ë²Ì¤ò¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëfloat.h ¤Ëµ­Ï¿¤¹¤ë¡£¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç enquire ¤ò¼Â¹Ô¤·¤Æ¤³¤Î¥Õ¥¡¥¤¥ë¤òÀ¸À®¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢²¿¤«Ê̤μêÃʤÇŬÀÚ¤Ê float.h ¤òÍѰդ¹¤ëɬÍפ¬½Ð¤Æ¤¯¤ë¤À¤í¤¦¡£¤µ¤â¤Ê¤¤¤È¡¢¥×¥í¥°¥é¥à¤ÎÃæ¤Çfloat.h ¤ò»È¤ï¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¯¤Ê¤ë¡£

¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤Î¾ì¹ç¤Ï¡¢¥¹¥Æ¡¼¥¸2 ¤òºî¤é¤Ê¤¤¤è¤¦¤Ë¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò»È¤Ã¤Æ¡¢GNU CC ¤ò¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ¹½ÃÛ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£²¿¸Î¤Ê¤é¡¢¤½¤¦¤¹¤ë¤È¡¢¥Û¥¹¥È¤Ç¤Ï¤Ê¤¯¤Æ¡¢¥¿¡¼¥²¥Ã¥Èµ¡¼ï¾å¤Çưºî¤¹¤ë¥×¥í¥°¥é¥à¤¬¤Ç¤­¤ë¤«¤é¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢386¤«¤é68030¤Ø¤Î¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¤½¤ì¼«¿È¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¡¢¤½¤Î·ë²Ì¤Ï 386 ¤Ë¤È¤Ã¤Æ¤â(68030¤Î¥³¡¼¥É¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¤Î¤Ç)¡¢68030 ¤Ë¤È¤Ã¤Æ¤â(386 ¤ò¥Û¥¹¥È¤È¤·¤Æ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç) Àµ¤·¤¯¤Ê¤¤¡£GNU CC ¼«¿È¤ò 68030 ¤Î¥³¡¼¥É¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢68030 ¾å¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤è¤¦¤È¤â¡¢386 ¾å¤Ç¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤è¤¦¤È¤â¡¢¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¥¸¤Ë 68030 ¤ò¥Û¥¹¥È¤È¤·¤Æ»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Ë¤Ï¡¢ÉáÄÌ¤ÈÆ±¤¸¤Ë¡¢make install ¤È¤¹¤ë¡£


Node:Sun Install, Next:, Previous:Cross-Compiler, Up:Installation

GNU CC ¤ò Sun ¤Ë¥¤¥ó¥¹¥È¡¼¥ë

Solaris ¤Ç¤Ï¡¢GNU CC ¤òºî¤ë¤È¤­¤Ë¡¢/usr/ucb ¤Ë¤¢¤ë¡¢¥ê¥ó¥«¤ä¤½¤Î¾¤Î¥Ä¡¼¥ë¤ò»È¤ï¤Ê¤¤¤³¤È¡£Âå¤ï¤ê¤Ë¡¢/usr/ccs/bin ¤Ë¤¢¤ë¤â¤Î¤ò»È¤¦¤è¤¦¤Ë¤¹¤ë¡£

¥¢¥»¥ó¥Ö¥é¤¬¡¢¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤ÎºÝ¤Ë Error: misaligned data ¤ÈÊó¹ð¤·¤Æ¤­¤¿¤é¡¢¤ª¤½¤é¤¯ GNU ¥¢¥»¥ó¥Ö¥é¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤ò»È¤Ã¤Æ¤¤¤ë¤»¤¤¤Ç¤¢¤ë¡£GNU binutils ¤ÎºÇ¿·ÈǤ˹¹¿·¤¹¤ë¤«¡¢Solaris ¤Î¥¢¥»¥ó¥Ö¥é¤ò»È¤¦¤³¤È¡£

libgcc.a ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë¡¢´Ä¶­ÊÑ¿ô FLOAT_OPTION ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Îǧ¤¹¤ë¤³¤È¡£libgcc.a ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë¤³¤Î´Ä¶­ÊÑ¿ô¤¬ f68881 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥ë¤·¤¿·ë²Ì¤Î¥³¡¼¥É¤¬ÆÃÊ̤ʳ«»Ï¥Õ¥¡¥¤¥ë¤È¥ê¥ó¥¯¤¹¤ë¤³¤È¤òÍ׵ᤷ¡¢ÆÃÊ̤ʶìÏ«¤ò¤·¤Ê¤¤¤ÈÀµ¤·¤¯¥ê¥ó¥¯¤Ç¤­¤Ê¤¤¤À¤í¤¦¡£

Sun ¤Î¥é¥¤¥Ö¥é¥ê¤ÎÆÃÄê¤Î¥Ð¡¼¥¸¥ç¥ó¤Î alloca ¤Ë¤Ï¥Ð¥°¤¬¤¢¤ë¡£¤³¤Î¥Ð¥°¤òÈò¤±¤ë¤Ë¤Ï¡¢GNU CC ¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿ GNU CC ¤Î¥Ð¥¤¥Ê¥ê¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡£¤³¤¦¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Ð¥¤¥Ê¥ê¤Ï¡¢alloca¤òÁȤ߹þ¤ß´Ø¿ô¤È¤·¤Æ»È¤¤¡¢¥é¥¤¥Ö¥é¥êÃæ¤Î¤â¤Î¤ò»È¤¦¤³¤È¤Ï¤Ê¤¤¡£

Sun ¤Î¥³¥ó¥Ñ¥¤¥é¤Î´ö¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢GNU CC ¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤ë¤È¤­¤ËÍî¤Á¤Æ¤·¤Þ¤¦¡£ÌäÂê¤Ï¡¢cpp ¤¬¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó°ãÈ¿¤òµ¯¤³¤¹¤³¤È¤Ë¤¢¤ë¡£¤³¤ÎÌäÂê¤Ï¡¢´Ä¶­ÊÑ¿ô¤ËÂçÎ̤Υǡ¼¥¿¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤Ëµ¯°ø¤¹¤ë¤è¤¦¤Ë»×¤¨¤ë¡£¤³¤ÎÌäÂê¤ò²óÈò¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¹Ô¤ò»È¤¤¡¢Sun CC ¤ÇGNU CC ¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£

make CC="TERMCAP=x OBJS=x LIBFUNCS=x STAGESTUFF=x cc"

SunOS 4.1.3 ¤È 4.1.3_U1 ¤Ë¤Ï¡¢GNU CC ¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤ë»þ¤ËÉÔÄê´ü¤Ë¥³¥¢¥À¥ó¥×¤¹¤ë¤È¤¤¤¦¥Ð¥°¤¬¤¢¤ë¡£¶¦Ä̤¹¤ë¾É¾õ¤ÏºÆ¸½À­¤Î¤Ê¤¤ÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼¤Ç¤¢¤ë¡£¤³¤ÎÌäÂê¤òľ¤¹¤Ë¤Ï¡¢Sun ¤Î¿ä¾©¥Ñ¥Ã¥Á 100726(SunOS 4.1.3 ÍÑ) ¤« 101508(SunOS 4.1.3_U1) ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï¤â¤Ã¤È¿·¤·¤¤ SunOS ¤Î¥ê¥ê¡¼¥¹¤Ë¹¹¿·¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£


Node:VMS Install, Next:, Previous:Sun Install, Up:Installation

GNU CC ¤ò VMS ¤Ë¥¤¥ó¥¹¥È¡¼¥ë

VMS ÈǤΠGNU CC ¤Ï¡¢¥½¡¼¥¹¥³¡¼¥É¤È¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¥Ð¥¤¥Ê¥ê¤ÎÁÐÊý¤ò´Þ¤à¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥»¡¼¥Ö¥»¥Ã¥È¤ÇÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¡£

gcc ¥³¥Þ¥ó¥É¤ò¡¢VMS C ¥³¥ó¥Ñ¥¤¥é¤ÈƱ¤¸ÊýË¡¤Ç¡¢´Êñ¤Ë»È¤¨¤ë¤è¤¦¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Ë¤Ï¡¢GNU CC ÍѤΠVMS CLD ¥Õ¥¡¥¤¥ë¤ò°Ê²¼¤Î¤è¤¦¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

  1. VMS ¤ÎÏÀÍý̾ GNU_CC ¤È GNU_CC_INCLUDE ¤òÄêµÁ¤·¡¢GNU CC ¤Î¼Â¹Ô·Á¼°(gcc-cpp.exe¡¢gcc-cc1.exe¡¢Åù)¤ÈC ¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò¤½¤ì¤¾¤ì»Ø¤¹¤è¤¦¤Ë¤¹¤ë¡£¤³¤ì¤Ë¤Ï¡¢
    $ assign /system /translation=concealed -
      disk:[gcc.] gnu_cc
    $ assign /system /translation=concealed -
      disk:[gcc.include.] gnu_cc_include
    

    ¤È¤¤¤¦¥³¥Þ¥ó¥É¤ËŬÀڤʥǥ£¥¹¥¯Ì¾¤È¥Ç¥£¥ì¥¯¥È¥ê̾¤ò»ØÄꤹ¤ë¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤òÆÉ¼Ô¤Î¥·¥¹¥Æ¥àµ¯Æ°¥Õ¥¡¥¤¥ë¤ËÆþ¤ì¤Æ¤ª¤±¤Ð¡¢¥ê¥Ö¡¼¥È»þ¤Ë¾ï¤Ë¼Â¹Ô¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ÆÉ¼Ô¤¬Ë¾¤à¤Ê¤é¡¢[GCC] ¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¤¤¿GCC_INSTALL.COM ¥¹¥¯¥ê¥×¥È¤ò·Ðͳ¤·¤Æ¹Ô¤Ê¤¦¤³¤È¤â½ÐÍè¤ë¡£

  2. GCC ¥³¥Þ¥ó¥É¤ò°Ê²¼¤Î¥³¥Þ¥ó¥É¹Ô¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡£
    $ set command /table=sys$common:[syslib]dcltables -
      /output=sys$common:[syslib]dcltables gnu_cc:[000000]gcc
    $ install replace sys$common:[syslib]dcltables
    
  3. °Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¡¢¥Ø¥ë¥×¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡£
    $ library/help sys$library:helplib.hlb gcc.hlp
    

    ¤³¤ì¤Ç¡¢GNU CC ¤ò gcc /verbose file.c ¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¹Ô¤Çµ¯Æ°¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Ï¤º¤Ç¤¢¤ë¡£¤³¤ì¤Ï Unix ¤Î¾ì¹ç¤Îgcc -v -c file.c ¤È¤¤¤¦¥³¥Þ¥ó¥É¤ËƱ¤¸¤Ç¤¢¤ë¡£

GNU C++ ¤ò»È¤¦¾ì¹ç¤Ë¤Ï¡¢¤Þ¤º GNU CC ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ª¤¤¤Æ¤«¤é¡¢°Ê²¼¤ÎÃʳ¬¤òƧ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

  1. This can be done with the command: VMS ÏÀÍý̾ GNU_GXX_INCLUDE ¤òÄêµÁ¤·¡¢¥×¥ê¥×¥í¥»¥Ã¥µ¤¬ C++ ¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò»Ø¤¹¤è¤¦¤Ë¤¹¤ë¡£¤³¤Î¤¿¤á¤Ë¤Ï°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¡£
    $ assign /system /translation=concealed -
      disk:[gcc.gxx_include.] gnu_gxx_include
    

    ¤³¤³¤ÇŬÀڤʥǥ£¥¹¥¯Ì¾¤È¥Ç¥£¥ì¥¯¥È¥ê̾¤ò»ØÄꤹ¤ë¡£C++ ¼Â¹Ô»þ¥é¥¤¥Ö¥é¥ê¤ò»È¤¦¤Ê¤é¡¢¤³¤³¤¬¤½¤Î¥é¥¤¥Ö¥é¥ê¤Î¥¤¥ó¥¹¥È¡¼¥ë¼ê³¤Ë¤è¤ê¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¾ì½ê¤Ç¤¢¤ë¡£

  2. gcc-cc1plus.exe ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òÆþ¼ê¤·¡¢gcc-cc1.exe ¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤³¤ì¤òÃÖ¤¯¡£

    ¤³¤ì¤Ç GNU C++ ¥³¥ó¥Ñ¥¤¥é¤Ï gcc /plus /verbose file.cc ¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤Çµ¯Æ°¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤ì¤Ï Unix ¤Î¾ì¹ç¤Îg++ -v -c file.cc ¤ÈƱ¤¸¤Ç¤¢¤ë¡£

²æ¡¹¤Ï¡¢¥Ð¡¼¥¸¥ç¥ó¤¬Âбþ¤·¤Æ¤¤¤ë¥Ð¥¤¥Ê¥ê¤È¥½¡¼¥¹¤ò VMS ÍѤÎÇÛÉۥơ¼¥×¤ËÆþ¤ì¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£¤À¤¬¡¢»þ¡¹¥Ð¥¤¥Ê¥ê¤¬¥½¡¼¥¹¤è¤ê¤â¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë¡£¾ï¤Ë¹¹¿·¤¹¤ë¤è¤¦¤Ë¤¹¤ë»þ´Ö¤¬¤Ê¤¤¤¿¤á¤Ç¤¢¤ë¡£(/version ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥Ð¥¤¥Ê¥ê¤Î¥Ð¡¼¥¸¥ç¥ó¤òÃΤ俤¦¤¨¤Ç¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÃæ¤Î version.c ¤ÈÈæ³Ó¤¹¤ë¤È¡¢¥Ð¥¤¥Ê¥ê¤È¥½¡¼¥¹¤ÎƱ´ü¤¬¼è¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤¬È½¤ë¡£) ¥Ð¥¤¥Ê¥ê¤ÎÊý¤¬¸Å¤¤¾ì¹ç¤Ï¡¢¤½¤Î¥Ð¥¤¥Ê¥ê¤ò»È¤Ã¤Æ¡¢¥½¡¼¥¹¥³¡¼¥É¤«¤éºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤¿Êý¤¬Îɤ¤¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤è¤¦¤Ê¤é¡¢°Ê²¼¤Î¼ê½ç¤Ë½¾¤¦¤³¤È¡£

  1. ¥³¥Þ¥ó¥É¡¦¥×¥í¥·¡¼¥¸¥ã vmsconfig.com ¤ò¼Â¹Ô¤·¤Æ¡¢tm.h¡¢config.h¡¢aux-output.c¡¢md. ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òÀßÄꤷ¡¢tconfig.h ¤È hconfig.h ¤òºî¤ë¡£¤Þ¤¿¡¢¤³¤Î¥×¥í¥·¡¼¥¸¥ã¤Ï¡¢make-cc1.com ¤¬»ÈÍѤ¹¤ë¤¿¤¯¤µ¤ó¤Î¥ê¥ó¥«¡¦¥ª¥×¥·¥ç¥ó¡¦¥Õ¥¡¥¤¥ë¤È¡¢make-l2.com ¤¬»ÈÍѤ¹¤ë°ì¸Ä¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡£
    $ @vmsconfig.com
    
  2. ¾å¤ÇÄêµÁ¤µ¤ì¤¿ÏÀÍý̾¤È¥³¥Þ¥ó¥É¥Æ¡¼¥Ö¥ë¤òÀßÄꤹ¤ë¡£¤µ¤é¤Ë¡¢VMS ÏÀÍý̾ GNU_BISON ¤òÄêµÁ¤·¡¢Bison ¤Î¼Â¹Ô·Á¼°¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò»Ø¤¹¤è¤¦¤Ë¤¹¤ë¡£¤³¤Î¤¿¤á¤Ë¤Ï°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¡£
    $ assign /system /translation=concealed -
      disk:[bison.] gnu_bison
    

    ÆÉ¼Ô¤¬Áª¤Ö¤Ê¤é¡¢BISON ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë INSTALL_BISON.COM ¥¹¥¯¥ê¥×¥È¤ò»È¤Ã¤Æ¤âÎɤ¤¡£

  3. BISON ¥³¥Þ¥ó¥É¤ò°Ê²¼¤Î¥³¥Þ¥ó¥É¹Ô¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡£
    $ set command /table=sys$common:[syslib]dcltables -
      /output=sys$common:[syslib]dcltables -
      gnu_bison:[000000]bison
    $ install replace sys$common:[syslib]dcltables
    
  4. Á´¤Æ¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¤Ë @make-gcc ¤ÈÂǤÄ(¤¢¤ë¤¤¤Ï¡¢¥Õ¥¡¥¤¥ë make-gcc.com ¤ò¥Ð¥Ã¥Á¡¦¥­¥å¡¼¤ËÅêÆþ¤¹¤ë)¡£GNU CC ¥³¥ó¥Ñ¥¤¥é¤À¤±¤Ç¤Ê¤¯ GNU C++ ¥³¥ó¥Ñ¥¤¥é¤â¹½ÃÛ¤·¤¿¤±¤ì¤Ð¡¢ºÇ½é¤Ë make-gcc.com ¤òÊÔ½¸¤·¤Æ¡¢¥³¥á¥ó¥È¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÁàºî¤Ë½¾¤¦É¬Íפ¬¤¢¤ë¡£
  5. GCC ¤ò»È¤¦¤¿¤á¤Ë¤Ï¡¢GCC ¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥³¡¼¥É¤«¤é¸Æ¤Ó½Ð¤µ¤ì¡¢¤¢¤ëÆÃÄê¤Îºî¶È¤ò¹Ô¤¦´Ø¿ô¥é¥¤¥Ö¥é¥ê¤¬É¬ÍפǤ¢¤ë¡£¤³¤ì¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Ë¤Ï¡¢¥³¥Þ¥ó¥É¡¦¥×¥í¥·¡¼¥¸¥ã make-l2.com ¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£¤³¤ì¤ò»È¤¦¤È¥é¥¤¥Ö¥é¥ê libgcc2.olb ¤òÀ¸À®¤¹¤ë¡£libgcc2.olb ¤Ï¡¢libgcc2.c ¤Î½Ð½ê¤ÈƱ¤¸¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤«¤é¹½ÃÛ¤µ¤ì¤¿ GCC ¤ò»È¤Ã¤Æ¹½ÃÛ¤¹¤ëɬÍפ¬¤¢¤ë¡£make-gcc.com ¤Ï¡¢¤³¤Î¤¿¤á¤ËɬÍפʤ³¤È¤òÁ´¤Æ¼«Æ°Åª¤Ë¹Ô¤¦¡£

    ¤³¤Î¥é¥¤¥Ö¥é¥ê¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò»È¤¦¡£

    $ library gnu_cc:[000000]gcclib/delete=(new,eprintf)
    $ library gnu_cc:[000000]gcclib/delete=L_*
    $ library libgcc2/extract=*/output=libgcc2.obj
    $ library gnu_cc:[000000]gcclib libgcc2.obj
    

    ºÇ½é¤Î¥³¥Þ¥ó¥É¤Ï¡¢Ê̤Υ⥸¥å¡¼¥ë̾¤ÇÃÖ¤«¤ì¤ë libgcc2 ¤«¤éÍè¤ë¥â¥¸¥å¡¼¥ë¤ÇÃÖ¤­´¹¤¨¤é¤ì¤ë¸Å¤¤¥â¥¸¥å¡¼¥ë¤òñ¤Ë¾Ãµî¤¹¤ë¡£¥â¥¸¥å¡¼¥ë new ¤È eprintf ¤Ï¡¢ÆÉ¼Ô¤Î gcclib.olb ¤Ë¤Ï¼ÂºÝ¤Ë¤Ï¸ºß¤·¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£VMS ¤Î¥é¥¤¥Ö¥é¥ê¥¢¥ó¤¬¤³¤ì¤é¤Î¥â¥¸¥å¡¼¥ë¤¬Â¸ºß¤·¤Ê¤¤¤Èʸ¶ç¤ò¸À¤Ã¤¿¾ì¹ç¤Ï¡¢Ã±¤Ë¤½¤Î¥á¥Ã¥»¡¼¥¸¤ò̵»ë¤·¤Æ¡¢¼¡¤Î¥³¥Þ¥ó¥É¤ò³¤±¤ë¤³¤È¡£ÂèÆó¤Î¥³¥Þ¥ó¥É¤Ï¡¢libgcc2.c ¥é¥¤¥Ö¥é¥ê¤Î°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤«¤éÍè¤ë¥â¥¸¥å¡¼¥ë¤ò¾Ãµî¤¹¤ë¡£

    ÆÉ¼Ô¤Î¥·¥¹¥Æ¥à¤Î GNU CC ¤ò¹¹¿·¤·¤¿¤È¤­¤Ï¤¤¤Ä¤Ç¤â¡¢¤³¤Î¥é¥¤¥Ö¥é¥ê¤â¾åµ­¤Î¥×¥í¥·¡¼¥¸¥ã¤Ç¹¹¿·¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

  6. GCC ¤ò¹½ÃÛ¤¹¤ë¤Î¤Ë¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï²¿¤â¥Õ¥¡¥¤¥ë¤òºî¤ê¤¿¤¯¤Ê¤¤¤³¤È¤â¤¢¤ë¤À¤í¤¦¡£Î㤨¤Ð¡¢¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤¬ÆÉ¤ß¤À¤·ÀìÍѥǥ£¥¹¥¯¾å¤Ë¤¢¤ë¾ì¹ç¤¬³ºÅö¤¹¤ë¤À¤í¤¦¡£¤½¤¦¸À¤¦¾ì¹ç¤Ï¡¢°Ê²¼¤Î DCL ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë(ÆÉ¼Ô¤Î¤È¤³¤í¤Î¼ÂºÝ¤Î¥Ñ¥¹Ì¾¤ËÃÖ¤­´¹¤¨¤ë¤³¤È)¡£
    $ assign dua0:[gcc.build_dir.]/translation=concealed, -
             dua1:[gcc.source_dir.]/translation=concealed  gcc_build
    $ set default gcc_build:[000000]
    

    ¤³¤³¤Ç¡¢¥Ç¥£¥ì¥¯¥È¥ê dua1:[gcc.source_dir] ¤Ë¤Ï¥½¡¼¥¹¥³¡¼¥É¤¬ÃÖ¤«¤ì¤Æ¤ª¤ê¡¢¥Ç¥£¥ì¥¯¥È¥ê dua0:[gcc.build_dir] ¤ÏÀ¸À®¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È¼Â¹Ô·Á¼°¤òÁ´¤ÆÃÖ¤¯¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£°ìÅÙ¤³¤¦¤·¤Æ¤ª¤±¤Ð¡¢¾å¤Ëµ­½Ò¤·¤¿¤è¤¦¤Ë GCC ¤Î¹½ÃÛ¤ò¿Ê¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£(gcc_build ¤Ï¥ë¡¼¥Èµ¯ÅÀ¤ÎÏÀÍý̾¤Ç¤¢¤ê¡¢¤½¤Î¤¿¤á¸¡º÷¥ê¥¹¥È¤Î³ÆÍ×ÁÇ¤ËÆþ¤Ã¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹Ì¾¤Ï¡¢²¿¤«Ê̤Υ롼¥Èµ¯ÅÀÏÀÍý̾¤Ç¤Ï¤Ê¤¯¼ÂºÝ¤ÎʪÍý¥Ç¥Ð¥¤¥¹Ì¾¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¡£)

  7. GNU CC ¤ò°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó GNU CC ¤Çºî¤í¤¦¤È¤·¤Æ¤¤¤ë¤Ê¤é¡¢GNU ¥¢¥»¥ó¥Ö¥é¤ÎºÇ¿·ÈǤò»È¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤â³Î¤«¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ÆÃ¤Ë¡¢GNU CC ¥Ð¡¼¥¸¥ç¥ó 2 ¤Ï¥°¥í¡¼¥Ð¥ëÄê¿ôÊÑ¿ô¤Î¼è°·¤¤¤¬¡¢GNU CC ¥Ð¡¼¥¸¥ç¥ó 1 ¤ÈÈù̯¤Ë°Û¤Ê¤ê¡¢GAS ¥Ð¡¼¥¸¥ç¥ó 1.38.1 ¤Ë¤Ï¡¢GCC ¥Ð¡¼¥¸¥ç¥ó 2 ¤È¶¦¤Ëưºî¤µ¤»¤ë¤Î¤ËɬÍפʥѥåÁ¤¬Â¸ºß¤·¤Ê¤¤¡£GAS 1.38.1 ¤ò»È¤¦¤È¡¢extern const Àë¸À¤µ¤ì¤¿ÊÑ¿ô¤Ë¤Ï¡¢ÆÉ¤ß¤À¤·ÀìÍѥӥåȤ¬ÀßÄꤵ¤ì¤º¡¢¥ê¥ó¥«¤¬¡¢¤½¤¦¤¤¤¦ÊÑ¿ô¤ËÂФ·¡¢psect °À­¤¬°ìÃפ·¤Ê¤¤¤È¤¤¤¦·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¡£¤³¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤Ïñ¤Ë¼ÙËâ¤Ê¤À¤±¤Ç¤¢¤ê¡¢Ìµ»ë¤·¤ÆÎɤ¤¡£

    GNU CC ¤Î 1.33 °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ï¡¢Á´¤Æ¤Î¥³¥ó¥Ñ¥¤¥ë¤Ç¥ª¥×¥·¥ç¥ó¤È¤·¤Æ /DEFINE=("inline=") ¤ò»ØÄꤹ¤ë¤³¤È¡£¤³¤Î¤¿¤á¤Ë¤Ï¡¢make-cc1.com ¤Ë¸½¤ì¤ëÁ´¤Æ¤Î gcc ¥³¥Þ¥ó¥É¤òÊÔ½¸¤¹¤ëɬÍפ¬¤¢¤ë¡£(¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Ë¤Ï inline ¤Î¥µ¥Ý¡¼¥È¤ËÌäÂ꤬¤¢¤Ã¤¿¤Î¤Ç¤¢¤ë¡£)°ìÅÙ 1.33 °Ê¹ß¤Î GNU CC ¤¬Æ°¤¯¤è¤¦¤Ë¤Ê¤ì¤Ð¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ò¸µ¤ËÌ᤹¤³¤È¤¬½ÐÍè¤ë¡£

  8. GNU CC ¤ò VAX C ¥³¥ó¥Ñ¥¤¥é¤Ç¹½ÃÛ¤·¤¿¤¤¾ì¹ç¤Ï¡¢make-cccp.com ¤Èmake-cc1.com ¤Ë¤Á¤ç¤Ã¤ÈÊѹ¹¤ò²Ã¤¨¤Æ¡¢CC¡¢CFLAGS¡¢LIBS ¤ÎÊ̤ÎÄêµÁ¤òÁª¤ÖɬÍפ¬¤¢¤ë¡£¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ëÃæ¤Î¥³¥á¥ó¥È¤ò»²¾È¤Î¤³¤È¡£¤¿¤À¤·¡¢GNU ¥¢¥»¥ó¥Ö¥é(GNU as, ÊÌ̾ GAS)¤ÎÀµ¤·¤¯Æ°ºî¤¹¤ë¥Ð¡¼¥¸¥ç¥ó¤¬¡¢GNU CC ¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¤È¤·¤Æ¡¢¥Ð¥¤¥Ê¥ê¤Î¥ª¥Ö¥¸¥§¥¯¥È¥â¥¸¥å¡¼¥ë¤òÀ¸À®¤¹¤ë¤Î¤ËɬÍפǤ¢¤ë¡£GAS ¤Ï GNU CC ¤Î¥½¡¼¥¹¤Ë¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£GAS ¤Ï¡¢libgcc2 ¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ gcclib ¤òºî¤ë¤Î¤Ë¤âɬÍפǤ¢¤ë(¾åµ­»²¾È)¡£make-l2.com ¤Ç¤Ï¡¢GAS ¤¬ gnu_cc:[000000]gnu-as.exe ¤È¤·¤Æ»È¤¨¤ë»ö¤òÁÛÄꤷ¤Æ¤¤¤ë¡£

    GNU CC ¤ò VMS ¤Ç»È¤¦¤Ë¤Ï¡¢VMS Íѥɥ饤¥Ð¥×¥í¥°¥é¥à gcc.exe¡¢gcc.com¡¢gcc.cld ¤¬É¬ÍפǤ¢¤ë¡£¤³¤ì¤é¤Ï¡¢GNU CC ¤Î¥½¡¼¥¹¤Ç¤Ï¤Ê¤¯¤Æ VMS ÍѥХ¤¥Ê¥ê(gcc-vms) ¤ËÆþ¤Ã¤ÆÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¡£GAS¡¢Bison ¤â gcc-vms ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£

    VAX C ¤Ç GNU CC ¤ò¹½ÃÛ¤¹¤ë¤Î¤Ë°ìÅÙÀ®¸ù¤¹¤ì¤Ð¡¢¤Ç¤­¤¿¥³¥ó¥Ñ¥¤¥é¤ò»È¤Ã¤Æ¼«Ê¬¼«¿È¤òºÆ¹½ÃÛ¤·¤¿Êý¤¬Îɤ¤¡£¤½¤ÎÁ°¤Ë¡¢make-cccp.com ¤Èmake-cc1.com ¤ÎÃæ¤Î CC¡¢CFLAGS¡¢LIBS ¤ÎÄêµÁ¤ò¸µ¤ËÌ᤹¤Î¤ò˺¤ì¤Ê¤¤¤³¤È¡£ÆóÂåÌܤΥ³¥ó¥Ñ¥¤¥é¤Ï¡¢Â¾¤Î¥³¥ó¥Ñ¥¤¥é¤Ç¹½ÃÛ¤·¤Æ¤¤¤ë¤È¤­¤Ë¤ÏÍ޻ߤ·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤«¤Ã¤¿Â¿¿ô¤ÎºÇŬ²½¤ÎÍøÅÀ¤òµý¼õ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î GNU CC ¤Ç¤Ï¡¢À¸À®¤µ¤ì¤¿¥³¡¼¥É¤ò¶¦Í­²Äǽ¤ÊVAXCRTL ¥é¥¤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¤È¤ª¤«¤·¤Ê·ë²Ì¤Ë¤Ê¤ë¤³¤È¤¬¤È¤­¤É¤­¤¢¤Ã¤¿¡£¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤¹¤ë¤Ï¤º¤Ç¤¢¤ë¡£

¤¿¤À¤·¡¢¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤â¡¢GNU CC ¼«ÂΤ϶¦Í­²Äǽ¤Ê VAXCRTL ¤È¥ê¥ó¥¯¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£VAXCRTL ¤Ë¤¢¤ë¥Ð¡¼¥¸¥ç¥ó¤Î qsort ¤Ë¤Ï¥Ð¥°¤¬¤¢¤ê(VMS ¥Ð¡¼¥¸¥ç¥ó V4.6 ¤«¤é V5.5 ¤Ë¤«¤±¤ÆÂ¸ºß¤¹¤ë¤Î¤¬ÃΤé¤ì¤Æ¤¤¤ë)¡¢GNU CC ¤¬Àµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£

¼Â¹Ô·Á¼°¤Ï¡¢make-cc1.com ¤È make-cccp.com ¤Ë¤è¤ê¡¢VAXCRTL ¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¥ª¥Ö¥¸¥§¥¯¥È¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¤³¤È¤Ç¡¢gcclib.olb ¤Ë¤¢¤ë qsort ¥ë¡¼¥Á¥ó¤ò»È¤¦¤è¤¦¤Ë¤Ê¤ë¡£GCC ¤Î¼Â¹Ô·Á¼°¤ò¶¦Í­²Äǽ¤Ê VAXCRTL ¤È¥ê¥ó¥¯¤·¤¿¤±¤ì¤Ð¡¢¥Õ¥¡¥¤¥ë tm.h(vmsconfig.com ¤Ë¤è¤êºî¤é¤ì¤ë)¤òÊÔ½¸¤·¤Æ¡¢¥Þ¥¯¥í QSORT_WORKAROUND ¤òÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¡£

QSORT_WORKAROUND ¤Ï GNU CC ¤ò VAX C ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ï¾ï¤ËÄêµÁ¤µ¤ì¤Æ¡¢gcclib.olb ¤¬¤Þ¤ÀÍøÍѲÄǽ¤Ç¤Ê¤¤¾ì¹ç¤ÎÌäÂê¤ò²óÈò¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£


Node:Collect2, Next:, Previous:VMS Install, Up:Installation

collect2

GNU CC ¤Ï¡¢¤Û¤ÜÁ´¤Æ¤Î¥·¥¹¥Æ¥à¤Ç collect2 ¤È¤¤¤¦¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ò»È¤Ã¤Æ¡¢¥×¥í¥°¥é¥à¤Î³«»Ï»þ¤ËÍÍ¡¹¤Ê½é´ü²½´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤è¤¦¤ÊÀßÄê¤ò¹Ô¤Ê¤¦¡£

collect2 ¤Î»ÅÁȤߤϡ¢¤Þ¤º°ìÅÙ¥×¥í¥°¥é¥à¤Î¥ê¥ó¥¯¤ò¹Ô¤Ê¤¤¡¢¥ê¥ó¥«¤Î½ÐÎÏ¥Õ¥¡¥¤¥ë¤òÄ´¤Ù¤Æ¥³¥ó¥¹¥È¥é¥¯¥¿´Ø¿ô¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹Ì¾Á°¤ò»ý¤Ä¥·¥ó¥Ü¥ë¤òõ¤¹¡£¤½¤Î¤è¤¦¤Ê¥·¥ó¥Ü¥ë¤¬°ì¤Ä¤Ç¤â¤¢¤ì¤Ð¡¢¥·¥ó¥Ü¥ë¤Î¥Æ¡¼¥Ö¥ë¤ò´Þ¤à°ì»þ .c ¥Õ¥¡¥¤¥ë¤òºî¤ê¡¢¥³¥ó¥Ñ¥¤¥ë¤·¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤òÄɲä·¤ÆÆó²óÌܤΥê¥ó¥¯¤ò¹Ô¤Ê¤¦¡£

¥³¥ó¥¹¥È¥é¥¯¥¿·²¤Î¼ÂºÝ¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢__main ¤È¤¤¤¦¥µ¥Ö¥ë¡¼¥Á¥ó¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤ë¡£__main ¤Ï¡¢main ´Ø¿ôËÜÂΤÎÀèÆ¬¤Ç¼«Æ°Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë(main ´Ø¿ô¤Ï GNU CC ¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë)¡£__main ¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢C ¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤­¤Ë¤âɬÍפǤ¢¤ë¡£¤È¤¤¤¦¤Î¤Ï¡¢C ¤È C++ ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òξÊý¥ê¥ó¥¯¤¹¤ë¤Î¤ËɬÍפˤʤ뤫¤é¤Ç¤¢¤ë¡£(-nostdlib ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢__main ¤Î»²¾È¤¬²ò·è¤µ¤ì¤Ê¤¤¡£__main ¤¬É¸½à GCC ¥é¥¤¥Ö¥é¥ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£¤½¤Î¾ì¹ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¤Î¥³¥Þ¥ó¥É¹Ô¤ÎºÇ¸å¤Ë -lgcc ¤òÉÕ¤±²Ã¤¨¤ì¤Ð¡¢²ò·è¤Ç¤­¤ë¡£)

collect2 ¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Î³Æ¥Ñ¥¹¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¡¢ld ¤È¤¤¤¦Ì¾Á°¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¡£collect2 ¤¬ËÜÅö¤Î ld ¤òõ¤¹É¬Íפ¬¤¢¤ë¤È¤­¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤òõ¤¹¡£

¡ÖGNU CC ¤Î¸¡º÷¥Ç¥£¥ì¥¯¥È¥ê¡×¤È¤Ï¡¢GNU CC ¤¬¥³¥ó¥Ñ¥¤¥é¤Î³Æ¥Ñ¥¹¤Î¥³¥Þ¥ó¥É¤ò¸¡º÷¤¹¤ëÁ´¤Æ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò°ÕÌ£¤¹¤ë¡£-B ¤Ç»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤â´Þ¤à¡£

¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤Î¾ì¹ç¤Î¸¡º÷¤Ï¼ã´³°Û¤Ê¤ë¡£

collect2 ¤Ï¡¢collect2 ¼«¿È¤¬µ¯Æ°¤µ¤ì¤¿¤È¤­¤Î¥Õ¥¡¥¤¥ë̾¤ò»È¤Ã¤Æ ld ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤òÌÀ¼¨Åª¤Ë²óÈò¤·¤Æ¤¤¤ë¡£¼ÂºÝ¤Ë¡¢¤½¤¦¤¤¤¦¥Õ¥¡¥¤¥ë̾¤Î¥ê¥¹¥È¤òµ­²±¤·¤Æ¤¤¤ë¡£Î㤨¤Ð¡¢collect2 ¤Î°ì¤Ä¤Î¥³¥Ô¡¼¤¬¡¢¸¡º÷¥Ñ¥¹¤ÎÆóÈÖÌܤξì½ê¤Ë ld ¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿ collect2 ¤ÎÊ̤Υ³¥Ô¡¼(¤Þ¤¿¤Ï¥Ð¡¼¥¸¥ç¥ó)¤ò¸«¤Ä¤±¤¿¤È¸À¤¦¤è¤¦¤Ê¾ì¹ç¤Ç¤¢¤ë¡£

collect2 ¤Ï¡¢nm ¤È strip ¤òld ¤ËÂФ¹¤ë¾åµ­¤Î¤ÈƱ¤¸¥¢¥ë¥´¥ê¥º¥à¤ò»È¤Ã¤Æ¸¡º÷¤¹¤ë¡£


Node:Header Dirs, Previous:Collect2, Up:Installation

ɸ½à¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê

GCC_INCLUDE_DIR ¤Ï¡¢¥Í¥¤¥Æ¥£¥Ö¤È¥¯¥í¥¹¤ÇƱ¤¸¤â¤Î¤ò°ÕÌ£¤¹¤ë¡£GNU CC ¤¬»äŪ¤Ê¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò³ÊǼ¤¹¤ë¾ì½ê¤Ç¤¢¤ê¡¢¤Þ¤¿ GNU CC ¤¬½¤ÀµÈÇ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò³ÊǼ¤¹¤ë¾ì½ê¤Ç¤â¤¢¤ë¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿ GNU CC ¤Ï¡¢$(tooldir)/include ¤Ë¤¢¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ fixincludes ¤ò¼Â¹Ô¤¹¤ë¡£(¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ëÍѥإåÀ¥Õ¥¡¥¤¥ë¤ò½¤Àµ¤¹¤ëɬÍפ¬¤¢¤ë¤Ê¤é¡¢¤½¤ì¤ò GNU CC ¤ò¹½ÃÛ¤¹¤ëÁ°¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ª¤«¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ëÍѥإåÀ¥Õ¥¡¥¤¥ë¤¬´û¤Ë ANSI C ¤È GNU CC ¤ËŬÀڤʤâ¤Î¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢²¿¤âÆÃÊ̤ʽèÍý¤ÏɬÍפʤ¤¡£)

GPLUSPLUS_INCLUDE_DIR ¤Ï¡¢¥Í¥¤¥Æ¥£¥Ö¤È¥¯¥í¥¹¤ÇƱ¤¸¤â¤Î¤ò°ÕÌ£¤¹¤ë¡£g++ ¤¬ºÇ½é¤Ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òõ¤¹¾ì½ê¤Ç¤¢¤ë¡£C++ ¥é¥¤¥Ö¥é¥ê¤Ï¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥¿¡¼¥²¥Ã¥ÈÆÈΩ¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤·¤«¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤¤¡£

LOCAL_INCLUDE_DIR ¤Ï¡¢¥Í¥¤¥Æ¥£¥Ö¥³¥ó¥Ñ¥¤¥é¤À¤±¤¬»È¤¦¡£Ä̾ï¤Ï¡¢/usr/local/include ¤Ë¤Ê¤ë¡£GNU CC ¤Ï¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¸¡º÷¤¹¤ë¤Î¤Ç¡¢¥æ¡¼¥¶¤Ï¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò/usr/local/include ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤ÆÃÖ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£

CROSS_INCLUDE_DIR ¤Ï¡¢¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤À¤±¤¬»È¤¦¡£GNU CC ¤Ï¤³¤³¤Ë¤Ï²¿¤â¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤¤¡£

TOOL_INCLUDE_DIR ¤Ï¡¢¥Í¥¤¥Æ¥£¥Ö¤È¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ÎξÊý¤Ç»È¤ï¤ì¤ë¡£GNU CC ¤¬»È¤¦¤Ç¤¢¤í¤¦Â¾¤Î¥Ñ¥Ã¥±¡¼¥¸¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì½ê¤Ç¤¢¤ë¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤Î¾ì¹ç¤Ï¡¢¤³¤ì¤Ï /usr/include ¤ËÅù²Á¤Ç¤¢¤ë¡£¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥é¤ò¹½ÃÛ¤¹¤ë¤È¤­¤Ë¡¢fixincludes ¤Ï¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òÁ´¤Æ½èÍý¤¹¤ë¡£


Node:C Extensions, Next:, Previous:Installation, Up:Top

C ¸À¸ì¤ËÂФ¹¤ë³ÈÄ¥

GNU C ¤Ï¡¢ANSI C ¸À¸ìɸ½àµ¬³Ê¤Ë¤Ï̵¤¤µ¡Ç½¤ò¿¿ôÄ󶡤·¤Æ¤¤¤ë¡£(-pedantic ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢¤³¤ì¤é¤Îµ¡Ç½¤ò¤É¤ì¤«»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¤Æ¤¯¤ì¤ë¡£) ¾ò·ïÉÕ¤­¥³¥ó¥Ñ¥¤¥ë¤ò¹Ô¤¦¾ì¹ç¤Ë¡¢¤³¤ì¤é¤Î³ÈÄ¥µ¡Ç½¤¬»È¤¨¤ë¤«¤É¤¦¤«¥Æ¥¹¥È¤¹¤ë¤Ë¤Ï¡¢Í½ÌóºÑ¥Þ¥¯¥í __GNUC__ ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ì¤ÐÎɤ¤¡£¤³¤Î¥Þ¥¯¥í¤Ï¡¢GNU CC ¤Ç¤Ï¾ï¤ËÄêµÁ¤µ¤ì¤ë¡£

¤³¤ì¤é¤Î³ÈÄ¥µ¡Ç½¤Ï¡¢C ¤È Objective C ¤ÇÍøÍѤǤ­¤ë¡£¤½¤ÎÂçÉôʬ¤Ï¡¢C++ ¤Ç¤âÍøÍѲÄǽ¤Ç¤¢¤ë¡£C++ ¤Ë¤Î¤ßŬÍѲÄǽ¤Ê³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Ï¡¢See Extensions to the C++ Language.


Node:Statement Exprs, Next:, Previous:C Extensions, Up:C Extensions

¼°Ãæ¤Îʸ¤ÈÀë¸À

ʣʸ¤ò¾®³ç¸Ì¤Ç°Ï¤à¤È¡¢GNU C ¤Ç¤Ï¼°¤È¤·¤Æ»ÈÍѤǤ­¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¼°¤ÎÃæ¤Ç¥ë¡¼¥×¤ä switch ʸ¤ä¶É½êÊÑ¿ô¤ò»ÈÍѤǤ­¤ë¡£

¤µ¤Æ¡¢Ê£Ê¸¤È¤ÏÃæ³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿Ê¸¤ÎÎó¤Ç¤¢¤Ã¤¿¡£¤³¤Î³ÈÄ¥¹½Ê¸¤Ç¤Ï¡¢Ãæ³ç¸Ì¤Î¤Þ¤ï¤ê¤ò¾®³ç¸Ì¤¬°Ï¤à¤³¤È¤Ë¤Ê¤ë¡£Î㤨¤Ð¡¢

({ int y = foo (); int z;
   if (y > 0) z = y;
   else z = - y;
   z; })

¤Ï¡¢foo () ¤ÎÀäÂÐÃͤò¼è¤ëÀµ¤·¤¤¼°¤Ç¤¢¤ë¡£(ɬÍװʾå¤ËÊ£»¨¤À¤¬¡£)

ʣʸ¤ÎºÇ¸å¤Ë¤Ï¡¢¥»¥ß¥³¥í¥óÉÕ¤­¤Î¼°¤òÃÖ¤¯É¬Íפ¬¤¢¤ë¡£¤³¤ÎºÇ¸å¤Î¼°¤ÎÃͤ¬Ê£Ê¸Á´ÂΤÎÃͤÎÌò³ä¤ò²Ì¤¿¤¹¡£(Ãæ³ç¸Ì¤ÎºÇ¸å¤Ë¾¤Î¼ïÎà¤Îʸ¤ò»È¤¦¤È¡¢Ê£Ê¸Á´ÂΤη¿¤Ï void ¤Ë¤Ê¤ê¡¢Í­¸ú¤ÊÃͤò»ý¤¿¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£

¤³¤Îµ¡Ç½¤Ï¡¢¥Þ¥¯¥í¤ò°ÂÁ´¤ËÄêµÁ¤¹¤ë¾ì¹ç¤ËÆÃ¤ËÍ­¸ú¤Ç¤¢¤ë¡£°ÂÁ´¤Ë¤È¤¤¤¦¤Î¤Ï¡¢¥Þ¥¯¥í¤Î°ú¿ô¤Îɾ²Á¤ò°ìÅÙ¤À¤±¹Ô¤¦¤è¤¦¤Ë½ÐÍè¤ë¤È¤¤¤¦°ÕÌ£¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢ºÇÂçÃͤò¼è¤ë´Ø¿ô¤Ï¡¢É¸½àµ¬³Ê C ¤Î¥Þ¥¯¥í¤È¤·¤Æ°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë¤Î¤¬ÉáÄ̤Ǥ¢¤ë¡£

#define max(a,b) ((a) > (b) ? (a) : (b))

¤·¤«¤·¡¢¤³¤ÎÄêµÁ¤Ï a ¤« b ¤Î¤É¤Á¤é¤«¤òÆó²óɾ²Á¤·¤Æ¤·¤Þ¤¤¡¢°ú¿ô¤¬ÉûºîÍѤò»ý¤Ä¾ì¹ç¤Ïͽ´ü¤·¤Ê¤¤·ë²Ì¤òÀ¸¤¸¤ë¡£GNU C ¤Ç¤Ï¡¢°ú¿ô¤Î·¿¤òÃΤäƤ¤¤ì¤Ð¡¢¥Þ¥¯¥í¤ò°ÂÁ´¤ËÄêµÁ¤Ç¤­¤ë¡£int ·¿¤Î¾ì¹ç¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£

#define maxint(a,b) \
  ({int _a = (a), _b = (b); _a > _b ? _a : _b; })

ʣʸ¼°¤Ï¡¢Äê¿ô¼°¤¬Í׵ᤵ¤ì¤ë¾ìÌ̤ǤϻȤ¨¤Ê¤¤¡£Î㤨¤Ð¡¢ÎóµóÄê¿ô¤ÎÃͤ䡢¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ÎÉý¡¢ÀÅŪÊÑ¿ô¤Î½é´üÃÍÅù¤Ë¤Ï»È¤¨¤Ê¤¤¡£

°ú¿ô¤Î·¿¤¬È½¤é¤Ê¤¤¾ì¹ç¤Ç¤â¡¢typeof (see Typeof) ¤Þ¤¿¤Ï·¿Ì¾ÉÕ¤ò»È¤¦¤³¤È¤Ë¤è¤Ã¤Æ¡¢¾åµ­¤Î¼êË¡¤¬»ÈÍѲÄǽ¤Ç¤¢¤ë¡£


Node:Local Labels, Next:, Previous:Statement Exprs, Up:C Extensions

¶É½êŪ¤ËÀë¸À¤µ¤ì¤¿¥é¥Ù¥ë

¶É½ê¥é¥Ù¥ë¤Ï¡¢Ê£Ê¸¼°¤Î¥¹¥³¡¼¥×¤ÇÀë¸À¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¶É½ê¥é¥Ù¥ë¤Ïñ¤Ê¤ë¼±Ê̻ҤǤ¢¤ë¡£ÉáÄ̤Πgoto ʸ¤ò»È¤Ã¤Æ¤½¤³¤Ë¥¸¥ã¥ó¥×¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤¬¡¢¥¸¥ã¥ó¥×¸µ¤Ï¶É½ê¥é¥Ù¥ë¤Î°¤¹¤ëʣʸ¼°¤ÎÃæ¤Ë¸Â¤é¤ì¤ë¡£

¶É½ê¥é¥Ù¥ë¤ÎÀë¸À¤Ï°Ê²¼¤Î¤è¤¦¤Ë¹Ô¤¦¡£

__label__ label;

¤Þ¤¿¤Ï¡¢

__label__ label1, label2, ...;

¶É½ê¥é¥Ù¥ë¤ÎÀë¸À¤Ï¡¢Ê£Ê¸¼°¤ÎÀèÆ¬¡¢¤Ä¤Þ¤ê¡¢({ ¤Îľ¸å¤Ç¡¢Â¾¤ÎÄ̾ï¤ÎÀë¸À¤ÎÁ°¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¶É½ê¥é¥Ù¥ë¤ÎÀë¸À¤Ï¥é¥Ù¥ë̾¤òÄêµÁ¤¹¤ë¤¬¡¢¥é¥Ù¥ë¼«ÂΤòÄêµÁ¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£¶É½ê¥é¥Ù¥ë¼«ÂΤÎÄêµÁ¤Ï¡¢Ä̾ï¤Î¥é¥Ù¥ë¤ÈƱ¤¸¤¯ label: ¤ò»È¤Ã¤Æ¡¢Ê£Ê¸¼°Ãæ¤Ç¹Ô¤¦É¬Íפ¬¤¢¤ë¡£

¶É½ê¥é¥Ù¥ë¤Îµ¡Ç½¤Ï¡¢Ê£Ê¸¼°¤¬»È¤ï¤ì¤ë¤Î¤¬¥Þ¥¯¥íÄêµÁÃæ¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¤Î¤Ç¡¢½ÅÊõ¤¹¤ë¡£¥Þ¥¯¥í¤¬Æþ¤ì»Ò¤Ë¤Ê¤Ã¤¿¥ë¡¼¥×¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¡¢goto ¤ò»È¤Ã¤Æ¥ë¡¼¥×¤«¤éæ½Ð¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£¤·¤«¤·¡¢Ä̾ï¤Î¡¢´Ø¿ôÆâ¤Î¥¹¥³¡¼¥×¤Î¥é¥Ù¥ë¤Ï¤³¤ÎÌÜŪ¤Ë¤Ï»È¤¨¤Ê¤¤¡£°ì¸Ä¤Î´Ø¿ô¤ÎÃæ¤Ç¥Þ¥¯¥í¤Ï²¿ÅÙ¤â»È¤ï¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¡¢¤½¤Î¾ì¹ç¡¢²¿ÅÙ¤â¥Þ¥¯¥í¤¬Å¸³«¤µ¤ì¡¢Æ±¤¸¥é¥Ù¥ë¤¬°ì¤Ä¤Î´Ø¿ôÆâ¤ÇÊ£¿ô²óÄêµÁ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£¶É½ê¥é¥Ù¥ë¤ò»È¤¨¤Ð¡¢¤³¤ÎÌäÂê¤Ï²óÈò¤Ç¤­¤ë¡£°Ê²¼¤ËÎã¤ò¾å¤²¤ë¡£

#define SEARCH(array, target)                     \
({                                               \
  __label__ found;                                \
  typeof (target) _SEARCH_target = (target);      \
  typeof (*(array)) *_SEARCH_array = (array);     \
  int i, j;                                       \
  int value;                                      \
  for (i = 0; i < max; i++)                       \
    for (j = 0; j < max; j++)                     \
      if (_SEARCH_array[i][j] == _SEARCH_target)  \
        { value = i; goto found; }              \
  value = -1;                                     \
 found:                                           \
  value;                                          \
})


Node:Labels as Values, Next:, Previous:Local Labels, Up:C Extensions

¥é¥Ù¥ë¤ÎÃÍ

´Ø¿ôÆâ¤ÇÄêµÁ¤µ¤ì¤¿¥é¥Ù¥ë¤Î¥¢¥É¥ì¥¹¤Ï¡¢Æ±¤¸´Ø¿ôÆâ¤Ç¤¢¤ì¤Ð¡¢Ã±¹à±é»»»Ò && ¤ò»È¤Ã¤Æ¼èÆÀ¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¡£¥é¥Ù¥ë¤Î¥¢¥É¥ì¥¹Ãͤη¿¤Ï void * ¤Ë¤Ê¤ë¡£¥é¥Ù¥ë¤Î¥¢¥É¥ì¥¹Ãͤϡ¢Äê¿ô¤Ç¤¢¤ê¡¢¤³¤Î·¿¤ÎÄê¿ô¤¬Í­¸ú¤Ê¤È¤³¤í¤Ê¤é¤É¤³¤Ç¤â»È¤¦¤³¤È¤¬½ÐÍè¤ë¡£Îã¤òµó¤²¤è¤¦¡£

void *ptr;
...
ptr = &&foo;

¥é¥Ù¥ë¤Î¥¢¥É¥ì¥¹Ãͤò»È¤¦¤¿¤á¤Ë¤Ï¡¢¤½¤Î¥é¥Ù¥ë¤ò¥¸¥ã¥ó¥×¤¹¤ë¤³¤È¤¬½ÐÍè¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¤¿¤á¤Ë¤Ï¡¢·×»»·Á goto ʸ1¡¢ goto *exp; ¤ò»È¤¦¡£Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£

goto *ptr;

void * ·¿¤Ç¤¢¤ì¤Ð¡¢Ç¤°Õ¤Î¼°¤ò»È¤¦¤³¤È¤¬½ÐÍè¤ë¡£

¤³¤ì¤é¤ÎÄê¿ô¤Î»È¤¤Æ»¤Î°ì¤Ä¤Ï¡¢¥¸¥ã¥ó¥×¥Æ¡¼¥Ö¥ë¤ÎÀÅŪÇÛÎó¤ò½é´ü²½¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£

static void *array[] = { &&foo, &&bar, &&hack };

¤³¤¦¤¹¤ì¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ë¡¢Åº¤¨»ú¤Ç¥é¥Ù¥ë¤òÁª¤Ö¤³¤È¤¬½ÐÍè¤ë¡£

goto *array[i];

ź»ú¤ÎÈϰϤˤĤ¤¤Æ¤Î¸¡ºº¤Ï¹Ô¤Ê¤ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£C ¸À¸ì¤Ç¤Ï¡¢ÇÛÎó¤Î»²¾È¤Ë¤ª¤¤¤Æ¤Ïź»ú¤ÎÈϰϤθ¡ºº¤Ï¹Ô¤Ê¤¤¡£

¤³¤ÎÍͤʥé¥Ù¥ëÃͤÎÇÛÎó¤Ï¡¢switch ʸ¤ÈƱÍͤε¡Ç½¤òÄ󶡤¹¤ë¡£¤â¤Á¤í¤ó¡¢switch ʸ¤ò»È¤Ã¤¿¤Û¤¦¤¬¤­¤ì¤¤¤Ê¤Î¤Ç¡¢ÂоݤȤ¹¤ëÌäÂ꤬ switch ʸ¤Ë¤¦¤Þ¤¯Åö¤Æ¤Ï¤Þ¤é¤Ê¤¤¾ì¹ç°Ê³°¤Ï¡¢switch ʸ¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£

¤â¤¦¤Ò¤È¤Ä¤Î¡¢¥é¥Ù¥ëÃͤλȤ¤Æ»¤Ï¡¢¥¹¥ì¥Ã¥É¤ò»È¤Ã¤¿¥³¡¼¥É¤Î¥¤¥ó¥¿¥×¥ê¥¿¤Ë¤¢¤ë¡£¥¤¥ó¥¿¥×¥ê¥¿´Ø¿ôÆâ¤Î¥é¥Ù¥ë¤Ï¡¢Ä¶¹â®¥Ç¥£¥¹¥Ñ¥Ã¥ÁÍѤÎÁÇ¥ì¥Ã¥É¥³¡¼¥É¤Ë³ÊǼ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

¤³¤Îµ¡¹½¤ò»È¤Ã¤Æ¡¢°Û¤Ê¤ë´Ø¿ôÃæ¤Î¥³¡¼¥É¤Ë¥¸¥ã¥ó¥×¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤ì¤ò¤ä¤ë¤È¡¢Á´¤¯Í½Â¬¤Ç¤­¤Ê¤¤»ö¤¬È¯À¸¤¹¤ë¤À¤í¤¦¡£¤³¤ì¤òÈò¤±¤ë¤Î¤Ë°ìÈÖÎɤ¤ÊýË¡¤Ï¡¢¥é¥Ù¥ë¤Î¥¢¥É¥ì¥¹¤ò¼«Æ°ÊÑ¿ô¤Ë¤À¤±³ÊǼ¤·¡¢°ú¿ô¤È¤·¤Æ¤ÏÅϤµ¤Ê¤¤¤³¤È¤Ç¤¢¤ë¡£


Node:Nested Functions, Next:, Previous:Labels as Values, Up:C Extensions

Æþ¤ì»Ò´Ø¿ô

¥Í¥¹¥È¤·¤¿´Ø¿ô ¤È¤Ï¡¢¤Ê¤Ë¤«Ê̤δؿô¤Î¤Ê¤«¤ÇÄêµÁ¤µ¤ì¤¿´Ø¿ô¤Ç¤¢¤ë¡£(GNU C++ ¤Ç¤Ï¥Í¥¹¥È¤·¤¿´Ø¿ô¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£) ¥Í¥¹¥È¤·¤¿´Ø¿ô¤Î̾Á°¤Ï¡¢ÄêµÁ¤µ¤ì¤¿¥Ö¥í¥Ã¥¯Æâ¤ÇÍ­¸ú¤Ç¤¢¤ë¡£°Ê²¼¤ÎÎã¤Ç¤Ï¡¢square ¤È¤¤¤¦Ì¾Á°¤Î¥Í¥¹¥È¤·¤¿´Ø¿ô¤òÄêµÁ¤·¡¢Æó²ó¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¡£

foo (double a, double b)
{
  double square (double z) { return z * z; }

  return square (a) + square (b);
}

¥Í¥¹¥È¤·¤¿´Ø¿ô¤«¤é¤Ï¡¢¤½¤ì¤ò´Þ¤à´Ø¿ô¤ÎÊÑ¿ô¤Î¤¦¤Á¡¢¥Í¥¹¥È¤·¤¿´Ø¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ëÅÀ¤Ç¸«¤¨¤ë¤â¤Î¤ÏÁ´Éô»²¾È²Äǽ¤Ç¤¢¤ë¡£¤³¤ì¤Ï¡¢¥ì¥­¥·¥«¥ë¡¦¥¹¥³¡¼¥Ô¥ó¥° ¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤ÎÎã¤Ç¤Ï¡¢¥Í¥¹¥È¤·¤¿´Ø¿ô¤¬ offset ¤È¤¤¤¦Ì¾Á°¤ÎÊÑ¿ô¤ò¿Æ´Ø¿ô¤«¤é·Ñ¾µ¤·¤Æ¤¤¤ë¡£

bar (int *array, int offset, int size)
{
  int access (int *array, int index)
    { return array[index + offset]; }
  int i;
  ...
  for (i = 0; i < size; i++)
    ... access (array, i) ...
}

¥Í¥¹¥È¤·¤¿´Ø¿ô¤Ï¡¢´Ø¿ôÆâ¤Î¡¢ÊÑ¿ô¤ÎÄêµÁ¤¬½ÐÍè¤ë¾ì½ê¤ÇÄêµÁ½ÐÍè¤ë¡£¤Ä¤Þ¤ê¡¢Ç¤°Õ¤Î¥Ö¥í¥Ã¥¯Ãæ¤ÎºÇ½é¤Îʸ¤ÎÁ°¤Ë¤Ê¤ë¡£

¥Í¥¹¥È¤·¤¿´Ø¿ô¤ò¤½¤Î̾Á°¤Î¥¹¥³¡¼¥×¤Î³°Â¦¤«¤é¸Æ¤Ó½Ð¤¹¤Î¤Ï¡¢¤½¤Î¥¢¥É¥ì¥¹¤ò³ÊǼ¤·¤¿¤ê¡¢Ê̤δؿô¤Ë¥¢¥É¥ì¥¹¤òÅϤ·¤¿¤ê¤¹¤ë¤³¤È¤Ç²Äǽ¤Ç¤¢¤ë¡£

hack (int *array, int size)
{
  void store (int index, int value)
    { array[index] = value; }

  intermediate (store, size);
}

¤³¤³¤Ç¡¢´Ø¿ô intermediate ¤Ï¡¢°ú¿ô¤È¤·¤Æ store ¤Î¥¢¥É¥ì¥¹¤ò¼õ¤±¼è¤ë¡£intermediate ¤¬ store ¤ò¸Æ¤Ó½Ð¤¹¤Ê¤é¡¢¤½¤Î»þ¤Ë store ¤ËÍ¿¤¨¤é¤ì¤ë°ú¿ô¤¬¡¢array ¤Ë³ÊǼ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£¤À¤¬¡¢¤³¤ÎÊýË¡¤Ï¡¢¤½¤Î¥Í¥¹¥È¤·¤¿´Ø¿ô¤òÊñ´Þ¤¹¤ë´Ø¿ô(¤³¤ÎÎã¤Ç¤Ï¡¢hack) ¤¬½ªÎ»¤·¤Ê¤¤´Ö¤À¤±¡¢µ¡Ç½¤¹¤ë¡£

¥Í¥¹¥È¤·¤¿´Ø¿ô¤ò¡¢¤½¤Î¥¢¥É¥ì¥¹¤ò»È¤Ã¤Æ¡¢¤½¤ÎÊñ´Þ´Ø¿ô¤¬½ªÎ»¤·¤¿¸å¤Ç¸Æ¤Ó½Ð¤½¤¦¤È¤¹¤ë¤È¡¢ÂçÊѤʤ³¤È¤Ë¤Ê¤ë¡£Êñ´Þ¤·¤Æ¤¤¤ë¥¹¥³¡¼¥×¥ì¥Ù¥ë¤òÈ´¤±¤¿¸å¤Ë¸Æ¤Ó½Ð¤·¤ò¹Ô¤Ê¤¦¤È¤·¤¿¾ì¹ç¡¢¤â¤Ï¤ä¥¹¥³¡¼¥×¤Ë¤Ê¤¤ÊÑ¿ô¤ò²¿¤«»²¾È¤·¤Æ¤¤¤ë¤È¡¢±¿¤¬Îɤ±¤ì¤Ð¤¦¤Þ¤¯¤¤¤¯¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢´í¸±¤òÈȤ¹¤³¤È¤Ë¤Ê¤ë¡£¤À¤¬¡¢¥Í¥¹¥È¤·¤¿´Ø¿ô¤¬¥¹¥³¡¼¥×¤«¤é½Ð¤Æ¤·¤Þ¤Ã¤¿¤â¤Î¤ò²¿¤â»²¾È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢°ÂÁ´¤Ç¤¢¤ë¡£

GNU CC ¤Ï¥Í¥¹¥È´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤Î¤Ë¡¢¥È¥é¥ó¥Ý¥ê¥ó ¤È¸Æ¤Ð¤ì¤ëÊýË¡¤ò»È¤Ã¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¡£¤³¤ì¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤ëÏÀʸ¤¬ http://master.debian.org/~karlheg/Usenix88-lexic.pdf ¤«¤éÍøÍѤǤ­¤ë¡£

¥Í¥¹¥È´Ø¿ô¤Ï¡¢Êñ´Þ´Ø¿ôÆâ¤Ç¥é¥Ù¥ë¤¬ÌÀ¼¨Åª¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢Êñ´Þ´Ø¿ô¤«¤é·Ñ¾µ¤·¤¿¤½¤Î¥é¥Ù¥ë¤Ë¥¸¥ã¥ó¥×¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë(see Local Labels)¡£¤½¤¦¤¤¤¦¥¸¥ã¥ó¥×¤Ïľ¤Á¤ËÊñ´Þ´Ø¿ô¤ËÌá¤ê¡¢goto ¤ò¼Â¹Ô¤·¤¿¥Í¥¹¥È´Ø¿ô¤ÈÃæ´Ö¤Î´Ø¿ô¤ò½ªÎ»¤¹¤ë¡£°Ê²¼¤ËÎã¤ò¼¨¤¹¡£

bar (int *array, int offset, int size)
{
  __label__ failure;
  int access (int *array, int index)
    {
      if (index > size)
        goto failure;
      return array[index + offset];
    }
  int i;
  ...
  for (i = 0; i < size; i++)
    ... access (array, i) ...
  ...
  return 0;

 /* Control comes here from access
    if it detects an error.  */
 failure:
  return -1;
}

¥Í¥¹¥È´Ø¿ô¤Ï¾ï¤ËÆâÉô¥ê¥ó¥±¡¼¥¸¤È¤Ê¤ë¡£extern ÉÕ¤­¤ÇÀë¸À¤¹¤ë¤Î¤Ï¸í¤ê¤Ç¤¢¤ë¡£¥Í¥¹¥È´Ø¿ô¤ò¡¢¤½¤ÎÄêµÁ¤ÎÁ°¤ËÀë¸À¤¹¤ëɬÍפ¬¤¢¤ë¤È¤­¤Ï¡¢auto ¤ò»È¤¦¤³¤È(¤³¤ì¤Ï¡¢¤³¤Î¾ì¹ç°Ê³°¤Î´Ø¿ôÀë¸À¤Ç¤Ï°ÕÌ£¤¬¤Ê¤¤¡£)

bar (int *array, int offset, int size)
{
  __label__ failure;
  auto int access (int *, int);
  ...
  int access (int *array, int index)
    {
      if (index > size)
        goto failure;
      return array[index + offset];
    }
  ...
}


Node:Constructing Calls, Next:, Previous:Nested Functions, Up:C Extensions

´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¹½ÃÛ

°Ê²¼¤Ë¼¨¤¹ÁȤ߹þ¤ß´Ø¿ô¤ò»È¤¦¤È¡¢´Ø¿ô¤¬¼õ¤±¼è¤Ã¤¿°ú¿ô¤òµ­Ï¿¤¹¤ë¤³¤È¤¬¤Ç¤­¤¿¤ê¡¢¤Þ¤¿¡¢°ú¿ô¤Î¿ô¤ä·¿¤òÃΤé¤Ê¤¯¤Æ¤â¡¢Æ±¤¸°ú¿ô¤òÊ̤δؿô¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£

¤Þ¤¿¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÌá¤êÃͤòµ­Ï¿¤·¡¢¸å¤Ç¤½¤ÎÃͤòÊÖ¤¹¤³¤È¤â¤Ç¤­¤ë¡£¤³¤ì¤Ï¡¢¤½¤Î´Ø¿ô¤¬ÊÖ¤½¤¦¤È¤·¤Æ¤¤¤ë¥Ç¡¼¥¿·¿¤òÃΤé¤Ê¤¯¤Æ¤â²Äǽ¤Ç¤¢¤ë¡£(¤¿¤À¤·¡¢¸Æ¤Ó½Ð¤·Â¦¤Î´Ø¿ô¤¬¤½¤Î¥Ç¡¼¥¿·¿¤¬Ê֤äƤ¯¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤é¤ì¤ë¤¬¡£)

__builtin_apply_args ()
¤³¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ï¡¢¸½ºß¤Î´Ø¿ô¤ËÅϤµ¤ì¤¿¤Î¤ÈƱ¤¸°ú¿ô¤òÉÕ¤±¤Æ¤Î¸Æ¤Ó½Ð¤·¤ò¤É¤Î¤è¤¦¤Ë¹Ô¤Ê¤¦¤«¤òµ­½Ò¤¹¤ë¥Ç¡¼¥¿¤Ø¤Î void * ·¿¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£

¤³¤Î´Ø¿ô¤Ï°ú¿ô¥Ý¥¤¥ó¥¿¥ì¥¸¥¹¥¿¡¢¹½Â¤ÂÎÃÍ¥¢¥É¥ì¥¹¡¢´Ø¿ô¤Ø°ú¿ô¤òÅϤ¹¤Î¤Ë»È¤ï¤ì¤ë²ÄǽÀ­¤Î¤¢¤ëÁ´¤Æ¤Î¥ì¥¸¥¹¥¿¤ò¡¢¥¹¥¿¥Ã¥¯¾å¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Ë¥»¡¼¥Ö¤¹¤ë¡£¼¡¤Ë¡¢¤½¤Î¥Ö¥í¥Ã¥¯¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£

__builtin_apply (function, arguments, size)
¤³¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ï¡¢function(void (*)() ·¿)¤ò¡¢arguments (void * ·¿) ¤È size (int ·¿) ¤Çµ­½Ò¤µ¤ì¤ë²¾°ú¿ô¤Î¥³¥Ô¡¼¤ò°ú¿ô¤È¤·¤Æ¸Æ¤Ó½Ð¤¹¡£

arguments ¤ÎÃͤϡ¢__builtin_apply_args ¤¬ÊÖ¤¹ÃͤȤ¹¤Ù¤­¤Ç¤¢¤ë¡£°ú¿ô size ¤Ï¡¢¥¹¥¿¥Ã¥¯¤Î°ú¿ô¥Ç¡¼¥¿¤ÎÂ礭¤µ¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£

¤³¤Î´Ø¿ô¤Ï¡¢function ¤¬ÊÖ¤¹Ãͤò¤É¤Î¤è¤¦¤ËÊÖ¤¹¤«¤òµ­½Ò¤¹¤ë¥Ç¡¼¥¿¤Ø¤Î¡¢void * ·¿¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¤³¤Î¥Ç¡¼¥¿¤Ï¡¢¥¹¥¿¥Ã¥¯¾å¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¥Ö¥í¥Ã¥¯Ãæ¤Ë¥»¡¼¥Ö¤µ¤ì¤ë¡£

size ¤ÎŬÀÚ¤ÊÃͤò·×»»¤¹¤ë¤Î¤Ï¤¤¤Ä¤Ç¤â´Êñ¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¡£¤³¤ÎÃÍ¤Ï __buitin_apply ¤Ë¤è¤Ã¤Æ¡¢¥¹¥¿¥Ã¥¯¾å¤Ë¥×¥Ã¥·¥å¤µ¤ì¡¢ÆþÎϰú¿ôÎΰ褫¤é¥³¥Ô¡¼¤µ¤ì¤ë¥Ç¡¼¥¿Î̤ò·×»»¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡£

__builtin_return (result)
¤³¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ï¡¢¤½¤ì¤ò´Þ¤à´Ø¿ô¤«¤é result ¤Çµ­½Ò¤µ¤ì¤ëÃͤòÊÖ¤¹¡£result ¤Ë¤Ï¡¢__builtin_apply ¤¬ÊÖ¤¹Ãͤò»ØÄꤹ¤Ù¤­¤Ç¤¢¤ë¡£


Node:Naming Types, Next:, Previous:Constructing Calls, Up:C Extensions

¼°¤Î·¿¤Ë̾Á°¤òÍ¿¤¨¤ë

½é´ü²½¼°¤Î·Á¼°¤Î typedef Àë¸À¤ò»È¤¦¤³¤È¤Ç¡¢¤¢¤ë¼°¤Î·¿¤Ë̾Á°¤òÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£°Ê²¼¤Ë¡¢exp ¤Î·¿¤Ë name ¤È¤¤¤¦·¿Ì¾¤òÄêµÁ¤¹¤ëÎã¤ò¼¨¤¹¡£

typedef name = exp;

¤³¤ì¤Ï¡¢¼°Ê¸¤È¶¦¤Ë»È¤¦¤ÈÍ­¸ú¤Ç¤¢¤ë¡£°Ê²¼¤Ë¡¢¼°Ê¸¤È¶¦¤Ë»È¤Ã¤Æ¤¤¤ë¡¢¤É¤Î»»½Ñ·¿¤Ë¤Ç¤âŬÍѤǤ­¤ë¡¢°ÂÁ´¤ÊºÇÂçÃÍ¥Þ¥¯¥í¤ÎÄêµÁÎã¤ò¼¨¤¹¡£

#define max(a,b) \
  ({typedef _ta = (a), _tb = (b);  \
    _ta _a = (a); _tb _b = (b);     \
    _a > _b ? _a : _b; })

¥í¡¼¥«¥ëÊÑ¿ô̾¤ò¥¢¥ó¥À¡¼¥¹¥³¥¢¤Ç»Ï¤Þ¤ë̾Á°¤Ë¤¹¤ë¤Î¤Ï¡¢a ¤È b ¤¬ÃÖ¤­´¹¤¨¤é¤ì¤¿¼°Æâ¤ÇȯÀ¸¤¹¤ëÊÑ¿ô̾¤Î¾×ÆÍ¤òÈò¤±¤ë¤¿¤á¤Ç¤¢¤ë¡£¾­ÍèŪ¤Ë¤Ï¡¢¿·¤·¤¤Àë¸À¹½Ê¸¤Î·Á¼°¤ò¹Í¤¨¤Æ¡¢ÊÑ¿ô¤òÀë¸À¤¹¤ë¤Î¤Ë¡¢¤½¤Î¥¹¥³¡¼¥×¤¬¡¢¤½¤ÎÊÑ¿ô¤ËÂФ¹¤ë½é´ü²½»Ò°Ê¹ß¤Ë¤Î¤ß³«»Ï¤¹¤ë¤è¤¦¤Ë¤·¤¿¤¤¤È¹Í¤¨¤Æ¤¤¤ë¡£¤³¤ì¤Ï¡¢¾×ÆÍ¤òÈò¤±¤ë¤Î¤Ë¤è¤ê¿®ÍêÀ­¤Î¹â¤¤ÊýË¡¤È¤Ê¤ë¤À¤í¤¦¡£


Node:Typeof, Next:, Previous:Naming Types, Up:C Extensions

typeof ¤Ë¤è¤ë·¿¤Î»²¾È

¼°¤Î·¿¤ò»²¾È¤¹¤ë¤Ë¤Ï¡¢typeof ¤ò»È¤¦ÊýË¡¤â¤¢¤ë¡£¤³¤Î¥­¡¼¥ï¡¼¥É¤Î¹½Ê¸¤Ï¡¢sizeof ¤ËÎɤ¯»÷¤Æ¤¤¤ë¤¬¡¢°Ọ̃Ū¤Ë¤Ïtypedef ¤ÇÄêµÁ¤µ¤ì¤ë·¿Ì¾¤Ë»÷¤Æ¤¤¤ë¡£

typeof ¤Î°ú¿ô¤Ë¤Ï¡¢ÆóÄ̤ê¤Î½ñ¤­Êý¤¬¤¢¤ë¡£¼°¤òÍ¿¤¨¤ëÊýË¡¤È·¿¤òÍ¿¤¨¤ëÊýË¡¤Ç¤¢¤ë¡£°Ê²¼¤Ë¼°¤ò»ØÄꤹ¤ëÎã¤ò¼¨¤¹¡£

typeof (x[0](1))

¤³¤³¤Ç¤Ï¡¢x ¤¬´Ø¿ô¤ÎÇÛÎó¤Ç¤¢¤ë¤³¤È¤ò²¾Äꤷ¤Æ¤¤¤ë¡£¤³¤Î¹½Ê¸¤Çµ­½Ò¤µ¤ì¤ë·¿¤Ï¡¢´Ø¿ô¤ÎÌá¤êÃͤη¿¤Ë¤Ê¤ë¡£

¼¡¤Ë¡¢°ú¿ô¤Ë·¿Ì¾¤ò»ØÄꤷ¤¿Îã¤ò¼¨¤¹¡£

typeof (int *)

¤³¤ì¤Çµ­½Ò¤µ¤ì¤ë·¿¤Ï¡¢int ¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤¤¤¦·¿¤Ë¤Ê¤ë¡£

ANSI C ¥×¥í¥°¥é¥à¤«¤é¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤¿¤È¤­¤ËÀµ¤·¤¯Æ°ºî¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò½ñ¤¯¾ì¹ç¤Ï¡¢typeof ¤ÎÂå¤ï¤ê¤Ë __typeof__ ¤ò»È¤¦¤³¤È¡£See Alternate Keywords.

typeof¹½Ê¸¤Ï¡¢typedef ̾¤¬½ñ¤±¤ë¤È¤³¤í¤Ê¤é¤É¤³¤Ë¤Ç¤âÃÖ¤±¤ë¡£Î㤨¤Ð¡¢Àë¸À¤ä¡¢¥­¥ã¥¹¥È¤ä¡¢sizeof ¤ä typeof ¤ÎÃæ¤Ç»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£


Node:Lvalues, Next:, Previous:Typeof, Up:C Extensions

³ÈÄ¥º¸ÊÕÃÍ

ʣʸ¼°¡¢3¹à±é»»¼°¡¢¤½¤ì¤Ë¥­¥ã¥¹¥È¤Ï¡¢¤½¤Î¥ª¥Ú¥é¥ó¥É¤¬º¸ÊÕÃͤǤ¢¤ì¤Ð¡¢º¸ÊÕÃͤȤ·¤Æµö¤µ¤ì¤ë¡£¤Ä¤Þ¤ê¡¢¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò¼è¤Ã¤¿¤ê¡¢Ãͤò³ÊǼ½ÐÍè¤ë¡£

C++ ¤Îɸ½à¤Ï¡¢Ê£Ê¸¼°¤È3¹à±é»»»Ò¼°¤òº¸ÊÕÃͤȤ·¤Æ»È¤¦¤³¤È¡¢¤½¤ì¤«¤é»²¾È·¿¤Ø¤Î¥­¥ã¥¹¥È¤òµö¤·¤Æ¤¤¤ë¤Î¤Ç¡¢C++ ¤Î¥³¡¼¥É¤Ç¤Ï¤³¤Î³ÈÄ¥¤ò»È¤¦°ÕÌ£¤Ï¤¢¤Þ¤ê¤Ê¤¤¡£

Î㤨¤Ð¡¢Ê£Ê¸¼°¤ÏÂêÆþ²Äǽ¤Ç¤¢¤ë¡£Îó¤ÎºÇ¸å¤Î¼°¤¬º¸ÊÕÃͤȤʤ롣°Ê²¼¤ÎÆó¤Ä¤Î¼°¤ÏÅù²Á¤Ç¤¢¤ë¡£

(a, b) += 5
a, (b += 5)

ƱÍͤˡ¢Ê£Ê¸¼°¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£°Ê²¼¤ÎÆó¤Ä¤Î¼°¤ÏÅù²Á¤Ç¤¢¤ë¡£

&(a, b)
a, &b

¾ò·ï¼°¤Ï¡¢¤½¤Î·¿¤¬ void ¤Ç¤Ê¤¯¤Æ¡¢¿¿¤Îʬ´ô¤Èµ¶¤Îʬ´ô¤¬¤É¤Á¤é¤âÍ­¸ú¤Êº¸ÊÕÃͤʤ顢¤ä¤Ï¤êÍ­¸ú¤Êº¸ÊդȤʤ롣Î㤨¤Ð¡¢°Ê²¼¤ÎÆó¤Ä¤Î¼°¤ÏÅù²Á¤Ç¤¢¤ë¡£

(a ? b : c) = 5
(a ? b = 5 : (c = 5))

¥­¥ã¥¹¥È¤â¡¢¤½¤Î¥ª¥Ú¥é¥ó¥É¤¬º¸ÊÕÃͤǤ¢¤ì¤Ð¡¢Í­¸ú¤Êº¸ÊÕÃͤǤ¢¤ë¡£º¸ÊÕ¤¬¥­¥ã¥¹¥È¤Ç¤¢¤ëñ½ã¤ÊÂåÆþ¤Î¾ì¹ç¡¢¤Þ¤º±¦ÊÕ¤¬¥­¥ã¥¹¥È¤Ç»ØÄꤵ¤ì¤ë¥¿¥¤¥×¤ËÊÑ´¹¤µ¤ì¡¢¼¡¤Ë¥­¥ã¥¹¥È¤Ê¤·¤Îº¸ÊÕ¼°¤Î·¿¤ËÊÑ´¹¤µ¤ì¤ë¡£¤½¤ì¤¬³ÊǼ¤µ¤ì¤¿¸å¡¢¤½¤ÎÃͤϥ­¥ã¥¹¥È¤Ç»ØÄꤵ¤ì¤¿·¿¤ËÌᤵ¤ì¤Æ¡¢ÂåÆþ¼«ÂΤÎÃͤȤʤ롣¤Ä¤Þ¤ê¡¢a ¤Î·¿¤¬ char * ¤È¤¤¤¦¾ì¹ç¡¢°Ê²¼¤ÎÆó¤Ä¤Î¼°¤ÏÅù²Á¤Ç¤¢¤ë¡£

(int)a = 5
(int)(a = (char *)(int)5)

+= ¤Î¤è¤¦¤Ë»»½Ñ±é»»¤ÈÁȤ߹ç¤ï¤µ¤ì¤¿ÂåÆþ±é»»¤ò¥­¥ã¥¹¥È¤ËŬÍѤ¹¤ë¤È¡¢¥­¥ã¥¹¥È¤Î·ë²Ì¤Î·¿¤ò»È¤Ã¤Æ»»½Ñ±é»»¤ò¹Ô¤Ê¤¤¡¢¼¡¤ËÁ°½Ò¤Î¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ë³¹Ô¤µ¤ì¤ë¡£¤Ä¤Þ¤ê¡¢°Ê²¼¤ÎÆó¤Ä¤Î¼°¤ÏÅù²Á¤Ë¤Ê¤ë¡£

(int)a += 5
(int)(a = (char *)(int) ((int)a + 5))

º¸ÊÕÃͤΥ­¥ã¥¹¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤½¤Î¥¢¥É¥ì¥¹¤ò»È¤¦¤È°ì´ÓÀ­¤¬¤Ê¤¯¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£&(int)f ¤È¤¤¤¦½ñ¤­Êý¤¬µö¤µ¤ì¤ë¤È¤·¤è¤¦¡£f ¤Î·¿¤Ï float ·¿¤È¤¹¤ë¡£¤½¤¦¤¹¤ë¤È¡¢°Ê²¼¤Îʸ¤Ï¡¢À°¿ô¤Î¥Ó¥Ã¥È¥Ñ¥¿¡¼¥ó¤òÉâÆ°¾®¿ôÅÀ¿ô¤¬Â°¤¹¤ë¾ì½ê¤Ë³ÊǼ¤·¤è¤¦¤È¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£

*&(int)f = 1;

¤³¤ì¤Ï¡¢(int)f = 1 ¤¬¹Ô¤Ê¤¦¤³¤È¤ÈÁ´¤¯°ã¤¦¡£(int)f = 1 ¤Ï¡¢1 ¤òÉâÆ°¾®¿ôÅÀ¤ËÊÑ´¹¤·¡¢¤½¤ì¤ò³ÊǼ¤¹¤ë¡£¤³¤Î°ì´ÓÀ­¤Î¤Ê¤µ¤òȯÀ¸¤µ¤»¤ë¤è¤ê¤â¡¢¥­¥ã¥¹¥È¤Ë & ¤ò»È¤¦¤Î¤ò¶Ø»ß¤·¤¿¤Û¤¦¤¬Îɤ¤¤À¤í¤¦¤È²æ¡¹¤Ï¹Í¤¨¤Æ¤¤¤ë¡£

f ¤Î¥¢¥É¥ì¥¹¤ò int * ·¿¤Î¥Ý¥¤¥ó¥¿¤È¤·¤ÆËÜÅö¤ËɬÍפʤ顢ñ¤Ë (int *)&f ¤È½ñ¤±¤ÐÎɤ¤¡£


Node:Conditionals, Next:, Previous:Lvalues, Up:C Extensions

»°¹à±é»»»Ò¤Î¥ª¥Ú¥é¥ó¥É¤Î¾Êά

»°¹à±é»»»Ò¤Î¼°¤Ç¡¢ÆóÈÖÌܤΥª¥Ú¥é¥ó¥É¤ò¾Êά¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¾Êά¤·¤¿¾ì¹ç¤Ï¡¢ºÇ½é¤Î¥ª¥Ú¥é¥ó¥É¤ÎÃͤ¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¤½¤ÎÃͤ¬¼°¤ÎÃͤȤʤ롣

¤Ä¤Þ¤ê¡¢°Ê²¼¤Î¤è¤¦¤Ê¾ì¹ç¡¢

x ? : y

¼°¤ÎÃͤϡ¢x ¤ÎÃͤ¬ 0 ¤Ç¤Ê¤±¤ì¤Ð¤½¤ÎÃͤȤʤꡢx ¤¬ 0 ¤Ê¤éy ¤ÎÃͤȤʤ롣

¤³¤ì¤Ï°Ê²¼¤Î¼°¤ÈÁ´¤¯Åù²Á¤Ç¤¢¤ë¡£

x ? x : y

¾åµ­¤Î¤è¤¦¤Ê´Êñ¤Ê¥±¡¼¥¹¤Ç¤Ï¡¢ÆóÈÖÌܤΥª¥Ú¥é¥ó¥É¤ò¾Êά¤Ç¤­¤ëÍ­¤êÆñ¤ß¤¬Îɤ¯¤ï¤«¤é¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£¤³¤ì¤¬Ìò¤ËΩ¤Ä¤Î¤Ï¡¢ºÇ½é¤Î¥ª¥Ú¥é¥ó¥É¤¬ÉûºîÍѤ¬»ý¤Ã¤Æ¤¤¤ë¤«¡¢ÉûºîÍѤò»ý¤Ä²ÄǽÀ­¤¬¤¢¤ë(¥Þ¥¯¥í¤Î°ú¿ô¤Î¾ì¹ç)»þ¤Ç¤¢¤ë¡£¤½¤Î¾ì¹ç¡¢Ãæ´Ö¹à¤Ç¤½¤Î¥ª¥Ú¥é¥ó¥É¤ò·«¤êÊÖ¤·»È¤¦¤È¡¢ÉûºîÍѤ¬Æó²ó¼Â¹Ô¤µ¤ì¤ë¡£Ãæ´Ö¹à¤Î¥ª¥Ú¥é¥ó¥É¤ò¾Êά¤¹¤ë¤È¡¢´û¤Ë·×»»ºÑ¤ß¤ÎÃͤò»È¤¤¡¢ºÆ·×»»¤Ë¤è¤ë˾¤Þ¤·¤¯¤Ê¤¤ºîÍѤòȼ¤ï¤Ê¤¤¡£


Node:Long Long, Next:, Previous:Conditionals, Up:C Extensions

ÇܸìÀ°¿ô

GNU C ¤Ï¡¢int ¤ÎÆóÇܤÎÂ礭¤µ¤ÎÀ°¿ô·¿¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¤³¤Î·¿¤Ï¡¢É乿ÉÕ¤­¤Î¾ì¹ç¤Ï long long int¡¢Éä¹æÌµ¤·¤Î¾ì¹ç¤Ïunsigned long long int ¤È½ñ¤¯¡£long long int ·¿¤ÎÄê¿ô¤òºî¤ë¤Ë¤Ï¡¢À°¿ô¤Ë¥µ¥Õ¥£¥Ã¥¯¥¹ LL ¤òÉÕ¤±¤ë¡£unsigned long long int ·¿¤ÎÀ°¿ô¤Î¾ì¹ç¤Ë¤Ï¡¢ULL ¤Ç¤¢¤ë¡£

¾¤ÎÀ°¿ô·¿Æ±ÍÍ¡¢¤³¤ì¤é¤Î·¿¤ò»»½Ñ±é»»¤Ç»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤é¤Î·¿¤Ë¤Ä¤¤¤Æ¤Î¡¢²Ã»»¡¢¸º»»¡¢¥Ó¥Ã¥ÈËè¤Î¥Ö¡¼¥ë±é»»¤Ï¡¢Á´¤Æ¤Îµ¡¼ï¤Ç³«¤«¤ì¤¿·Á¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¡£¾è»»¤Ï¡¢µ¡¼ï¤¬Á´¸ì¤«¤éÇÜ¸ì¤Ø¤Î³ÈÉý¾è»»Ì¿Îá¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤Ê¤é¡¢³«¤«¤ì¤¿·Á¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¡£½ü»»¤È¥·¥Õ¥È¤Ï¡¢ÆÃÊ̤ʥµ¥Ý¡¼¥È¤òÄ󶡤·¤Æ¤¤¤ëµ¡¼ï¤Ç¤Î¤ß³«¤«¤ì¤¿·Á¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¡£³«¤«¤ì¤¿·Á¤Ç½ñ¤«¤ì¤Æ¤¤¤Ê¤¤±é»»¤Ï¡¢GNU CC ÉÕ°¤ÎÆÃÊ̤ʥ饤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤ò»È¤¦¡£

long long ·¿¤ò´Ø¿ô¤Î°ú¿ô¤Ë»È¤¦¤È¤­¤Ï¡¢´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ê¤·¤Î¾ì¹ç¤Ï¡¢Íî¤È¤··ê¤ËÃí°Õ¤¹¤ë¤³¤È¡£¤¢¤ë´Ø¿ô¤¬°ú¿ô¤È¤·¤Æ int ·¿¤òÁÛÄꤷ¤Æ¤¤¤ë¾ì¹ç¡¢long long int ·¿¤ÎÃͤòÅϤ¹¤È¡¢¸Æ¤Ó½Ð¤·Â¦¤È¸Æ¤Ó½Ð¤µ¤ì¤ë¦¤ÇÁÛÄꤷ¤Æ¤¤¤ë°ú¿ô¤Î¥Ð¥¤¥È¿ô¤¬°ã¤¦¤Î¤Ç¡¢º®Íð¤¬À¸¤¸¤ë¡£´Ø¿ô¤¬ long long int ¤òÁÛÄꤷ¡¢¤½¤ì¤ËÂФ·¡¢int ·¿¤òÅϤ¹¾ì¹ç¤âƱ¤¸¤Ç¤¢¤ë¡£¤³¤Î¤è¤¦¤ÊÌäÂê¤òÈò¤±¤ëºÇ¤âÎɤ¤ÊýË¡¤Ï¡¢¥×¥í¥È¥¿¥¤¥×Àë¸À¤ò»È¤¦¤³¤È¤Ç¤¢¤ë¡£


Node:Complex, Next:, Previous:Long Long, Up:C Extensions

Ê£ÁÇ¿ô

GNU C ¤ÏÊ£ÁÇ¿ô·¿¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£À°¿ô¤ÎÊ£ÁÇ¿ô·¿¤âÉâÆ°¾®¿ôÅÀ¿ô¤ÎÊ£ÁÇ¿ô·¿¤â¤É¤Á¤é¤â»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤Ë¤Ï¡¢__complex__ ¤È¤¤¤¦Í½Ìó¸ì¤ò»È¤¦¡£

Î㤨¤Ð¡¢__complex__ double x; ¤ÈÀë¸À¤¹¤ë¤È¡¢x ¤Ï¡¢¼Â¿ôÉô¤âµõ¿ôÉô¤â double ·¿¤ÎÊÑ¿ô¤Ë¤Ê¤ë¡£__complex__ short int y; ¤ÈÀë¸À¤¹¤ë¤È y ¤Ï¡¢¼Â¿ôÉô¤âµõ¿ôÉô¤â short int ·¿¤Ë¤Ê¤ë¡£¸å¼Ô¤ÎÊý¤Ï¤¢¤Þ¤êÌò¤Ë¤¿¤Á¤½¤¦¤â¤Ê¤¤¤¬¡¢Ê£ÁÇ¿ô·¿¤Ï°ìÄ̤êÁ´Éô·¤Ã¤Æ¤¤¤ë¤³¤È¤òɽ¤·¤Æ¤¤¤ë¡£

Ê£ÁÇ¿ô·¿¤ÎÄê¿ô¤Ï¡¢¥µ¥Õ¥£¥Ã¥¯¥¹ i ¤« j ¤ò¤Ä¤±¤Æ½ñ¤¯(¤É¤Á¤é¤«°ì¤Ä¤Ç¡¢¤É¤Á¤é¤Ç¤âƱ¤¸¤Ç¤¢¤ë)¡£Î㤨¤Ð¡¢2.5fi ¤È¤¤¤¦Äê¿ô¤Ï __complex__ float ·¿¤Ç¡¢3i ¤Ï __complex__ int ·¿¤Ë¤Ê¤ë¡£¤³¤Î¤è¤¦¤Ë½ñ¤¤¤¿À°¿ô¤Ï¡¢¾ï¤Ë½ãµõ¿ôÃͤˤʤ뤬¡¢¤³¤ì¤ò¼ÂÄê¿ô¤Ë­¤»¤Ð¡¢Ë¾¤ß¤ÎÊ£ÁÇ¿ôÃͤòºî¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

Ê£ÁÇ¿ôÃͤò»ý¤Ä¼° exp ¤«¤é¼Â¿ôÉô¤ò¼è¤ê½Ð¤¹¤Ë¤Ï¡¢__real__ exp ¤È½ñ¤¯¡£Æ±Íͤˡ¢µõ¿ôÉô¤ò¼è¤ê½Ð¤¹¤Ë¤Ï¡¢__imag__ ¤ò»È¤¦¡£

±é»»»Ò ~ ¤òÊ£ÁÇ¿ô·¿¤ÎÃͤ˻Ȥ¦¤È¡¢Ê£ÁǶ¦Ìò¤ò¼è¤ë¡£

GNU CC ¤ÏÊ£ÁÇ¿ô·¿¤Î¼«Æ°ÊÑ¿ô¤ÏϢ³Ū¤Ë¤Ï³ÎÊݤ·¤Ê¤¤¡£¼Â¿ôÉô¤Ï¥ì¥¸¥¹¥¿¤Ë¼è¤ê¡¢µõ¿ôÉô¤ÎÊý¤Ï¥¹¥¿¥Ã¥¯¾å¤Ë¼è¤ë(¤¢¤ë¤¤¤Ï¤½¤ÎµÕ) ¤³¤È¤µ¤¨²Äǽ¤Ç¤¢¤ë¡£GNU CC ¤¬¸½ºß¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥Ç¥Ð¥Ã¥°¾ðÊó·Á¼°¤Ç¡¢¤³¤Î¤è¤¦¤ÊÈóϢ³Ū¤Ê³ÎÊݤòɽ¸½¤¹¤ë¼êÃʤò»ý¤Ã¤Æ¤¤¤ë¤â¤Î¤Ï¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢GNU CC ¤ÏÈóϢ³Ū¤Ë³ÎÊݤµ¤ì¤¿Ê£ÁÇÊÑ¿ô¤ò¡¢¤¢¤¿¤«¤âÊ£ÁÇ¿ô·¿¤Ç¤Ê¤¤Æó¤Ä¤ÎÆÈΩ¤·¤¿ÊÑ¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ëµ­½Ò¤¹¤ë¡£¼ÂºÝ¤ÎÊÑ¿ô̾¤¬ foo ¤Ç¤¢¤ì¤Ð¡¢µ¿»÷Ū¤ÊÆó¤Ä¤ÎÊÑ¿ô̾¤Ï¡¢foo$real ¤È foo$imag ¤Ë¤Ê¤ë¡£¤³¤Î¤è¤¦¤Êµ¿»÷Ū¤ÊÊÑ¿ô¤Ï¡¢¥Ç¥Ð¥Ã¥¬¤«¤éÃͤòÄ´¤Ù¤¿¤êÀßÄꤷ¤¿¤ê¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£

GDB ¤Ï¾­Íè¡¢¤³¤Î¤è¤¦¤ÊÊÑ¿ô¤ÎÁȤòǧ¼±¤·¡¢°ì¸Ä¤ÎÊ£ÁÇ¿ô·¿ÊÑ¿ô¤È¤·¤Æ°·¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡£


Node:Hex Floats, Next:, Previous:Complex, Up:C Extensions

16¿ÊÉâÆ°¾®¿ô

GNU CC ¤Ï 1.55e1 ¤Î¤è¤¦¤ÊÉáÄ̤Î10¿Êɽµ­¤Ç½ñ¤«¤ì¤¿ÉâÆ°¾®¿ôÅÀ¿ô¤À¤±¤Ç¤Ê¤¯¡¢0x1.fp3 ¤Î¤è¤¦¤Ë16¿Êɽµ­¤Ç½ñ¤«¤ì¤¿¿ô¤âǧ¼±¤¹¤ë¡£¤³¤Îɽµ­¤Ç¤Ï¡¢16¿ÊÀÜÆ¬¼­ 0x ¤È»Ø¿ô¥Õ¥£¡¼¥ë¥É p ¤Þ¤¿¤ÏP ¤Ïɬ¿Ü¤Ç¤¢¤ë¡£»Ø¿ô¤Ï¡¢²¾¿ôÉô¤Ë³Ý¤±¤é¤ì¤ë 2 ¤ÎÑѾè¿ô¤òɽ¤¹10¿Ê¿ô¤Ç¤¢¤ë¡£¤¹¤Ê¤ï¤Á¡¢0x1.fp3 ¤Ï 1 15/16 ¤ò¡¢p3 ¤Ë¤è¤ê¡¢8 ¤ò³Ý¤±¤¿¤â¤Î¤Ë¤Ê¤ê¡¢·ë¶É 0x1.fp3 ¤ÎÃÍ¤Ï 1.55e1 ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£

10¿Êɽµ­¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤È°ã¤¤¡¢16¿Êɽµ­¤Ç¤Ï»Ø¿ô¤Ï¾ï¤ËɬÍפǤ¢¤ë¡£»Ø¿ô¤ò½ñ¤«¤Ê¤¤¤È¡¢Î㤨¤Ð 0x1.f ¤Ë¤¢¤ë¤è¤¦¤ÊÛ£Ëæ¤µ¤ò²ò·è¤Ç¤­¤Ê¤¤¡£¤³¤Î¿ô¤Ï 1.0f ¤È¤â¼è¤ì¤ë¤·¡¢¤¢¤ë¤¤¤Ï f ¤Ï float ·¿¤ÎÉâÆ°¾®¿ôÅÀÄê¿ô¤Î³ÈÄ¥·Á¼°¤Ç¤â¤¢¤ë¤Î¤Ç 1.9375 ¤È¤â¼è¤ì¤ë¤Î¤Ç¤¢¤ë¡£


Node:Zero Length, Next:, Previous:Hex Floats, Up:C Extensions

Â礭¤µ¥¼¥í¤ÎÇÛÎó

GNU C ¤Ç¤ÏŤµ¤¬ 0 ¤ÎÇÛÎó¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤ò¹½Â¤ÂΤκǸå¤ÎÍ×ÁǤȤ·¤ÆÃÖ¤­¡¢¼ÂºÝ¤Ë¤Ï²ÄÊÑĹ¤È¤Ê¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ø¥Ã¥À¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

struct line {
  int length;
  char contents[0];
};

{
  struct line *thisline = (struct line *)
    malloc (sizeof (struct line) + this_length);
  thisline->length = this_length;
}

C ¤Îɸ½à¤Ç¤Ï¡¢Ä¹¤µ 0 ¤ÎÇÛÎó¤Ïµö¤µ¤ì¤Ê¤¤¤¿¤á¡¢¾åµ­¤Î contents ¤ÎŤµ¤ò 1 ¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢¥¹¥Ú¡¼¥¹¤¬ÌµÂ̤ˤʤ俤ꡢmalloc ¤Î°ú¿ô¤¬Ê£»¨¤Ë¤Ê¤Ã¤¿¤ê¤¹¤ë¡£


Node:Variable Length, Next:, Previous:Zero Length, Up:C Extensions

²ÄÊÑĹÇÛÎó

GNU C ¤Ç¤Ï²ÄÊÑĹ¤Î¼«Æ°ÊÑ¿ôÇÛÎó¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ÎÇÛÎó¤Ï¡¢ÉáÄ̤μ«Æ°ÇÛÎó¤ÈƱ¤¸¤è¤¦¤ËÀë¸À¤¹¤ë¤¬¡¢Ä¹¤µ»ØÄ꤬Äê¿ô¼°¤Ç¤Ê¤¤¤È¤³¤í¤¬°ã¤¦¡£¥á¥â¥ê¤ÏÀë¸À¤Î¤¢¤ë¾ì½ê¤Ç³ÎÊݤµ¤ì¡¢¤½¤ì¤¬Â°¤¹¤ë¥Ö¥í¥Ã¥¯¤òÈ´¤±¤ë¤È¤­¤Ë²òÊü¤µ¤ì¤ë¡£°Ê²¼¤ËÎã¤ò¼¨¤¹¡£

FILE *
concat_fopen (char *s1, char *s2, char *mode)
{
  char str[strlen (s1) + strlen (s2) + 1];
  strcpy (str, s1);
  strcat (str, s2);
  return fopen (str, mode);
}

ÇÛÎó̾¤ÎÍ­¸úÈϰϤ«¤é¡¢¥¸¥ã¥ó¥×¤ä break ¤ÇÈ´¤±¤ë¤È¡¢ÇÛÎó̾¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥á¥â¥ê¤Ï²òÊü¤µ¤ì¤ë¡£ÇÛÎó̾¤ÎÍ­¸úÈϰϤ˥¸¥ã¥ó¥×¤·¤Æ¤¯¤ë¤Î¤Ïµö¤µ¤ì¤º¡¢¥¨¥é¡¼¤Ë¤Ê¤ë¡£

´Ø¿ô alloca ¤ò»È¤¨¤Ð¡¢²ÄÊÑĹÇÛÎó¤ÈƱ¤¸¤è¤¦¤Ê¸ú²Ì¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£alloca ¤Ï¡¢Â¿¤¯¤Î C ¤Î½èÍý·Ï¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë(¤¬¡¢Á´¤Æ¤Î½èÍý·Ï¤ÇÍøÍѲÄǽ¤Ê¤ï¤±¤Ç¤Ï¤Ê¤¤)¡£°ìÊý¡¢²ÄÊÑĹÇÛÎó¤ÎÊý¤¬¥¨¥ì¥¬¥ó¥È¤Ç¤¢¤ë¡£

¤³¤ÎÆó¤Ä¤ÎÊýË¡¤Ë¤Ï¾¤Ë¤â°ã¤¤¤¬¤¢¤ë¡£allocal ¤Ç³ÎÊݤ·¤¿Îΰè¤Ï¤½¤Î´Ø¿ô¤¬¥ê¥¿¡¼¥ó¤¹¤ë¤Þ¤Ç¸ºß¤·Â³¤±¤ë¡£²ÄÊÑĹÇÛÎó¤ÎÎΰè¤ÎÊý¤Ï¡¢ÇÛÎó̾¤Î¥¹¥³¡¼¥×¤òÈ´¤±¤¿½Ö´Ö¤Ë²òÊü¤µ¤ì¤ë¡£(¤¢¤ë°ì¤Ä¤Î´Ø¿ô¤Ç¡¢²ÄÊÑĹÇÛÎó¤Èalloca ¤ÎξÊý¤ò»È¤Ã¤¿¾ì¹ç¡¢¤¢¤ë²ÄÊÑĹÇÛÎó¤ò²òÊü¤¹¤ë¤È¡¢¤½¤Î²ÄÊÑĹÇÛÎó¤Î³ÎÊݰʸå¤Ë alloca ¤Ç³ÎÊݤµ¤ì¤¿Îΰè¤âÁ´¤Æ²òÊü¤µ¤ì¤ë¡£)

²ÄÊÑĹÇÛÎó¤ò´Ø¿ô¤Î°ú¿ô¤È¤·¤Æ»È¤¦¤³¤È¤â¤Ç¤­¤ë¡£

struct entry
tester (int len, char data[len][len])
{
  ...
}

ÇÛÎó¤ÎŤµ¤Ï¡¢¥á¥â¥ê¤¬³ÎÊݤµ¤ì¤ë¤È¤­¤Ë°ì²ó¤À¤±·×»»¤µ¤ì¡¢¤½¤ÎÇÛÎó¤ÎÍ­¸úÈÏ°ÏÆâ¤Ç¤Ïµ­²±¤µ¤ì¤Æ¤ª¤ê¡¢sizeof ¤Ç»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

ºÇ½é¤ËÇÛÎó¤òÅϤ·¡¢Ä¹¤µ¤Ï¸å¤«¤éÅϤ·¤¿¤¤¾ì¹ç¤Ï¡¢²¾°ú¿ô¤Î¥ê¥¹¥È¤ÇÁ°ÊýÀë¸À¤ò¹Ô¤Ê¤¨¤ÐÎɤ¤¡£¤³¤ì¤â¤â¤¦°ì¤ÄÊ̤ΠGNU ¤Î³ÈÄ¥µ¡Ç½¤Ç¤¢¤ë¡£

struct entry
tester (int len; char data[len][len], int len)
{
  ...
}

¥»¥ß¥³¥í¥ó¤ÎÁ°¤Î int len ¤¬ ²¾°ú¿ô¤ÎÁ°ÊýÀë¸À¤Ç¤¢¤ë¡£¤³¤ì¤Ï¡¢data ¤ÎÀë¸À¤ò¥Ñ¡¼¥¹¤¹¤ë¤È¤­¤Ë len ¤È¤¤¤¦Ì¾Á°¤ò´ûÃΤΤâ¤Î¤È¤¹¤ëÌò³ä¤ò²Ì¤¿¤¹¡£

²¾°ú¿ô¥ê¥¹¥È¤Ë¤Ï¡¢¤³¤¦¤¤¤¦Á°ÊýÀë¸À¤ò´ö¤Ä½ñ¤¤¤Æ¤âÎɤ¤¡£Á°ÊýÀë¸À¤Ï¡¢¥«¥ó¥Þ¤Þ¤¿¤Ï¥»¥ß¥³¥í¥ó¤ò»È¤Ã¤Æ¶èÀڤ롣¤¿¤À¤·¡¢ºÇ¸å¤ÎÁ°ÊýÀë¸À¤Ï¥»¥ß¥³¥í¥ó¤Ç½ª¤ï¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¤½¤Î¸å¤Ë¡ÖËÜʪ¤Î¡×²¾°ú¿ô¥ê¥¹¥È¤¬Â³¤¯¡£¤É¤ÎÁ°ÊýÀë¸À¤â¡¢¡ÖËÜʪ¤Î¡×²¾°ú¿ôÀë¸À¤Î̾Á°¤È¥Ç¡¼¥¿·¿¤Ë°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£


Node:Macro Varargs, Next:, Previous:Variable Length, Up:C Extensions

²þÊÑ¿ô°ú¿ô¤ò»ý¤Ä¥Þ¥¯¥í

GNU C ¤Ç¤Ï¡¢´Ø¿ô¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥Þ¥¯¥í¤â²ÄÊÑ¿ô¤Î°ú¿ô¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤Î¾ì¹ç¤Î¥Þ¥¯¥í¤ÎÄêµÁ¹½Ê¸¤Ï´Ø¿ô¤Î¾ì¹ç¤Ë»È¤ï¤ì¤ë¤â¤Î¤ËÎɤ¯»÷¤Æ¤¤¤ë¡£¼¡¤ËÎã¤ò¼¨¤¹¡£

#define eprintf(format, args...)  \
 fprintf (stderr, format , ## args)

args ¤Ï»Ä¤ê¤Î°ú¿ô¤Ç¤¢¤ë¡£¸Æ¤Ó½Ð¤·Â¦¤ÈƱ¤¸¤À¤±¤Î¡¢¥¼¥í¸Ä°Ê¾å¤Î°ú¿ô¤ò¼è¤ë¡£¤³¤ì¤éÁ´¤Æ¤Î°ú¿ô¤È¤½¤Î´Ö¤Ë¥«¥ó¥Þ¤ò²Ã¤¨¤¿¤â¤Î¤¬¡¢args ¤ÎÃͤȤʤꡢargs ¤¬»È¤ï¤ì¤ë¥Þ¥¯¥íËÜÂΤËÂåÆþ¤µ¤ì¤ë¡£·ë¶É¡¢¤³¤ÎÎã¤Ï°Ê²¼¤Î¤è¤¦¤ËŸ³«¤µ¤ì¤ë¡£

eprintf ("%s:%d: ", input_file_name, line_number)
==>
fprintf (stderr, "%s:%d: " , input_file_name, line_number)

ʸ»úÎóÄê¿ô¤Îľ¸å¤Î¥«¥ó¥Þ¤Ï eprintf ¤ÎÄêµÁ¤«¤éÍ褿¤â¤Î¤Ç¤¢¤ë¤Î¤ËÂФ·¡¢ºÇ¸å¤Î¥«¥ó¥Þ¤Ï args ¤ÎÃͤ«¤éÍ褿¤â¤Î¤Ç¤¢¤ë¤³¤È¤ËÃí°Õ¡£

## ¤ò»È¤¦Íýͳ¤Ï¡¢args ¤ËÁ´¤¯°ú¿ô¤¬¤Ê¤¤¾ì¹ç¤ò°·¤¦¤¿¤á¤Ç¤¢¤ë¡£¤½¤Î¾ì¹ç¡¢args ¤ÎÃͤ϶õ¤È¤Ê¤ë¡£¤½¤¦¤¹¤ë¤È¡¢¥Þ¥¯¥íÄêµÁÃæ¤ÎÆóÈÖÌܤΥ«¥ó¥Þ¤¬¼ÙËâ¤Ë¤Ê¤ë¡£¥Þ¥¯¥í¤ò¤½¤Î¤Þ¤ÞŸ³«¤¹¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£

fprintf (stderr, "success!\n" , )

¤³¤ì¤Ï¡¢C ¤Îʸˡ¤È¤·¤Æ¸í¤Ã¤¿¤â¤Î¤Ë¤Ê¤ë¡£## ¤ò»È¤¦¤È¤³¤Î¾ì¹ç¤Î¥«¥ó¥Þ¤ò¼è¤ê½ü¤¯¤Î¤Ç¡¢Âå¤ï¤ê¤Ë°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£

fprintf (stderr, "success!\n")

¤³¤ì¤Ï¡¢GNU C ¥×¥ê¥×¥í¥»¥Ã¥µ¤ÎÆÃÊ̤ʵ¡Ç½¤Ç¤¢¤ë¡£## ¤Î¸å¤Î»Ä¤ê¤Î°ú¿ô¤¬¶õ¤Î¾ì¹ç¤Î ¡¢Àè¹Ô¤¹¤ë¡¢¥Þ¥¯¥íÄêµÁ¤«¤éÍè¤ëÈó¶õÇòʸ»ú¤ÎÎó¤ò¼Î¤Æ¤µ¤ë¡£(¤â¤¦°ì¤ÄÊ̤Υޥ¯¥í°ú¿ô¤¬Àè¹Ô¤¹¤ë¾ì¹ç¤Ï¡¢²¿¤â¼Î¤Æ¤Ê¤¤¡£)

ºÇ¸å¤ÎÀè¹Ô¤¹¤ëÈó¶õÇòʸ»ú¤ÎÎó¤ÎÂå¤ï¤ê¤Ë¡¢ºÇ¸å¤Î¥×¥ê¥×¥í¥»¥Ã¥µ¡¦¥È¡¼¥¯¥ó¤ò¼Î¤Æµî¤Ã¤¿¤Û¤¦¤¬Îɤ¤¤Î¤«¤â¤·¤ì¤Ê¤¤¡£¼ÂºÝ¡¢¤¤¤Ä¤«¤Ï¤³¤Îµ¡Ç½¤ò¤½¤Î¤è¤¦¤ËÊѤ¨¤¿¤¤¤È»×¤¦¡£²æ¡¹¤È¤·¤Æ¤Ï¡¢¥Þ¥¯¥íÄêµÁ¤ò½ñ¤¯¤È¤­¤Ï¡¢Àè¹Ô¤¹¤ëÈó¶õÇòʸ»ú¤ÎÎó¤ò¤Á¤ç¤¦¤É°ì¸Ä¤Î¥È¡¼¥¯¥ó¤È¤Ê¤ë¤è¤¦¤Ë½ñ¤¤¤Æ¡¢²æ¡¹¤¬¤³¤Îµ¡Ç½¤ÎÄêµÁ¤òÊѤ¨¤¿¤È¤­¤Ë¤â°ÕÌ£¤¬ÊѤï¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤³¤È¤ò¤ª´«¤á¤¹¤ë¡£


Node:Subscripting, Next:, Previous:Macro Varargs, Up:C Extensions

º¸ÊÕÃͤǤʤ¤ÇÛÎó¤Îꤍ»ú¤ò¼è¤ë¤³¤È¤¬²Äǽ

º¸ÊÕÃͤǤʤ¤ÇÛÎó¤Îꤍ»ú¤ò¼è¤ë¤³¤È¤¬¡¢Ã±¹à¤Î & ±é»»»Ò¤¬µö¤µ¤ì¤Ê¤¤¾ì¹ç¤Ç¤â¡¢²Äǽ¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Ï GNU C ¤Ç¤ÏÍ­¸ú¤À¤¬Â¾¤Î C ¤ÎÊý¸À¤Ç¤ÏÍ­¸ú¤Ç¤Ê¤¤¡£

struct foo {int a[4];};

struct foo f();

bar (int index)
{
  return f().a[index];
}


Node:Pointer Arith, Next:, Previous:Subscripting, Up:C Extensions

void¥Ý¥¤¥ó¥¿¤È´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ËÂФ¹¤ë±é»»

GNU C ¤Ç¤Ï¡¢²Ã»»¤È¸º»»¤Î±é»»¤¬¡¢void ¤Ø¤Î¥Ý¥¤¥ó¥¿¤È´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ËÂФ·¤Æ¤â»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤Ï¡¢void ¤È´Ø¿ô¤ÎÂ礭¤µ¤ò1 ¤È¤·¤Æ°·¤¦¤³¤È¤Ë¤è¤ê¹Ô¤Ê¤ï¤ì¤ë¡£

¤³¤Î·ë²Ì¡¢sizeof ¤ò void ·¿¤È´Ø¿ô·¿¤Ë»È¤¦¤³¤È¤â¤Ç¤­¡¢¤É¤Á¤é¤â 1 ¤òÊÖ¤¹¡£

¥ª¥×¥·¥ç¥ó -Wpointer-arith ¤ò»ØÄꤹ¤ë¤È¡¢¤³¤Î³ÈÄ¥¤¬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë¤è¤¦¤ËÍ׵᤹¤ë¡£


Node:Initializers, Next:, Previous:Pointer Arith, Up:C Extensions

ÈóÄê¿ô¤Ë¤è¤ë½é´ü²½

C++ ¤Îɸ½à¤ÈƱÍͤˡ¢GNU C ¤Ç¤Ï¡¢¼«Æ°ÊÑ¿ô¤Ç¤¢¤ë½¸¹çÂΤνé´ü²½»Ò¤ÎÍ×ÁǤÏÄê¿ô¼°¤Ç¤Ê¤¯¤Æ¤âÎɤ¤¡£°Ê²¼¤Ë¡¢¼Â¹Ô»þ¤ËÊѲ½¤¹¤ëÍ×ÁǤò»ý¤Ä½é´ü²½»Ò¤ÎÎã¤òµó¤²¤ë¡£

foo (float f, float g)
{
  float beat_freqs[2] = { f-g, f+g };
  ...
}


Node:Constructors, Next:, Previous:Initializers, Up:C Extensions

¥³¥ó¥¹¥È¥é¥¯¥¿¼°

GNU C ¤Ï¥³¥ó¥¹¥È¥é¥¯¥¿¼°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¥³¥ó¥¹¥È¥é¥¯¥¿¤Ï¡¢¥­¥ã¥¹¥È¤È½é´ü²½»Ò¤òÁȤ߹ç¤ï¤»¤¿¤è¤¦¤Ë¸«¤¨¤ë¡£¤½¤ÎÃͤϡ¢¥­¥ã¥¹¥È¤Ë¤è¤ê»ØÄꤵ¤ì¤¿·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ê¡¢½é´ü²½»Ò¤Ç»ØÄꤵ¤ì¤¿Í×ÁǤò»ý¤Ä¡£

ÉáÄÌ¡¢·¿¤È¤·¤Æ»ØÄꤹ¤ë¤Î¤Ï¹½Â¤ÂΤǤ¢¤ë¡£struct foo ¤È structure ¤¬°Ê²¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë¤È¤·¤è¤¦¡£

struct foo {int a; char b[2];} structure;

¼¡¤ÎÎã¤Ç¤Ï¡¢struct foo ¤ò¥³¥ó¥¹¥È¥é¥¯¥¿¤Ç¹½ÃÛ¤·¤Æ¤¤¤ë¡£

structure = ((struct foo) {x + y, 'a', 0});

¤³¤ì¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¤¤¿¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£

{
  struct foo temp = {x + y, 'a', 0};
  structure = temp;
}

¤Þ¤¿¡¢ÇÛÎó¤ò¤â¹½ÃÛ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥³¥ó¥¹¥È¥é¥¯¥¿¤ÎÁ´Í×ÁǤ¬¡¢Ã±½ã¤ÊÄê¿ô¼°¤«¤é¤Ê¤Ã¤Æ¤ª¤ê¡¢½é´ü²½»Ò¤È¤·¤Æ»È¤¦¤Î¤ËŬ¤·¤Æ¤¤¤ì¤Ð¡¢¤½¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Ïº¸ÊÕÃͤǤ¢¤ê¡¢¶¯À©Åª¤Ë¤½¤ÎÀèÆ¬¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£°Ê²¼¤ËÎã¤ò¼¨¤¹¡£

char **foo = (char *[]) { "x", "y", "z" };

Í×ÁǤ¬Ã±½ã¤ÊÄê¿ô¤Ç¤Ê¤¤ÇÛÎ󥳥󥹥ȥ饯¥¿¤Ï¤¢¤Þ¤êÌò¤ËΩ¤¿¤Ê¤¤¡£¤½¤Î¾ì¹ç¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¤Ïº¸ÊÕÃͤǤϤʤ¤¤«¤é¤Ç¤¢¤ë¡£Í­¸ú¤Ê»È¤¤Êý¤ÏÆó¤Ä¤À¤±¤Ç¤¢¤ë¡£¤½¤ì¤òꤍ»ú¤Ç»²¾È¤¹¤ë¤³¤È¡¢¤¢¤ë¤¤¤Ï¡¢¤½¤ì¤ÇÇÛÎóÊÑ¿ô¤ò½é´ü²½¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£Á°¼Ô¤Ï¤ª¤½¤é¤¯ switch ʸ¤ò»È¤¦¤è¤êÃÙ¤¯¤Ê¤ë¡£°ìÊý¡¢¸å¼Ô¤ÏÄ̾ï¤Î C ¤Î½é´ü²½»Ò¤ÈƱ¤¸¤³¤È¤ò¤¹¤ë¡£°Ê²¼¤Ë¡¢ÇÛÎ󥳥󥹥ȥ饯¥¿¤Îꤍ»ú»²¾È¤ÎÎã¤ò¼¨¤¹¡£

output = ((int[]) { 2, x, 28 }) [input];

¥¹¥«¥é·¿¤È¶¦ÍÑÂη¿¤ËÂФ¹¤ë¥³¥ó¥¹¥È¥é¥¯¥¿¼°¤âµö¤µ¤ì¤ë¤¬¡¢¤½¤Î¾ì¹ç¥³¥ó¥¹¥È¥é¥¯¥¿¼°¤Ï¥­¥ã¥¹¥È¤ÈÅù²Á¤Ë¤Ê¤ë¡£


Node:Labeled Elements, Next:, Previous:Constructors, Up:C Extensions

½é´ü²½»Ò¤Î¥é¥Ù¥ëÉÕÍ×ÁÇ

ɸ½à¤Î C ¤Ç¤Ï¡¢½é´ü²½»Ò¤ÎÍ×ÁǤϷè¤Þ¤Ã¤¿½çÈ֤Ǹ½¤ì¤ë¤³¤È¤òÍ׵᤹¤ë¡£¤³¤Î½çÈ֤ϡ¢ÇÛÎó¤ä¹½Â¤ÂΤÎÍ×ÁǤ¬½é´ü²½¤µ¤ì¤ë½çÈÖ¤ÈÆ±¤¸¤Ç¤¢¤ë¡£

GNU C ¤Ç¤Ï¡¢Í×ÁǤòǤ°Õ¤Î½çÈ֤ǻØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤Ë¤ÏÍ×ÁÇËè¤Ë¡¢¤½¤ì¤¬Å¬ÍѤµ¤ì¤ëÇÛÎó¤Îꤍ»ú¤ä¹½Â¤ÂΤΥե£¡¼¥ë¥É̾¤ò»ØÄꤹ¤ë¡£¤³¤Î³ÈÄ¥¤Ï¡¢GNU C++ ¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£

ÇÛÎó¤Îꤍ»ú¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢Í×ÁǤÎÃͤÎÁ°¤Ë¡¢[index] ¤«[index] = ¤È½ñ¤¯¡£Î㤨¤Ð¡¢

int a[6] = { [4] 29, [2] = 15 };

¤Ï¡¢

int a[6] = { 0, 0, 15, 0, 29, 0 };

¤ÈÅù²Á¤Ç¤¢¤ë¡£Åº¤¨»ú¤ÎÃͤϡ¢½é´ü²½¤µ¤ì¤ëÇÛÎ󤬼«Æ°ÊÑ¿ô¤Ç¤¢¤Ã¤Æ¤â¡¢Äê¿ô¼°¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¤¢¤ëÈϰϤÎÍ×ÁǤòƱ¤¸Ãͤǽé´ü²½¤¹¤ë¤Ë¤Ï¡¢[first ... last] = value ¤È½ñ¤¯¡£Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¯¡£

int widths[] = { [0 ... 9] = 1, [10 ... 99] = 2, [100] = 3 };

¤³¤Î¾ì¹ç¡¢ÇÛÎó¤ÎÂ礭¤µ¤Ï¡¢ºÇ¤âÂ礭¤Êꤍ»ú¤ÎÃÍ¤Ë 1 ¤ò²Ã¤¨¤¿¤â¤Î¤Ç¤¢¤ë¤³¤È¤ËÃí°Õ¡£

¹½Â¤Âνé´ü²½»Ò¤Ë¤ª¤¤¤Æ¤Ï¡¢Í×ÁǤÎÃͤÎÁ°¤Ë¡¢½é´ü²½¤¹¤ë¥Õ¥£¡¼¥ë¥É¤Î̾Á°¤òfieldname: ¤Ç»ØÄꤹ¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¹½Â¤ÂΤ¬¤¢¤ë¤È¤¹¤ë¡£

struct point { int x, y; };

°Ê²¼¤Î½é´ü²½¤Ï

struct point p = { y: yvalue, x: xvalue };

¼¡¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£

struct point p = { xvalue, yvalue };

Ʊ¤¸°ÕÌ£¤ò»ý¤ÄÊ̤νñ¤­Êý¤Ï .fieldname = ¤Ç¤¢¤ë¡£°Ê²¼¤ËÎã¤ò¼¨¤¹¡£

struct point p = { .y = yvalue, .x = xvalue };

¤Þ¤¿¡¢Í×ÁÇ¥é¥Ù¥ë(¥³¥í¥ó·Á¼°¤«¥Ô¥ê¥ª¥É = ·Á¼°¤Ç)¤ò»È¤Ã¤Æ¶¦ÍÑÂΤò½é´ü²½¤·¡¢¶¦ÍÑÂΤΤɤÎÍ×ÁǤ¬»È¤ï¤ì¤ë¤Ù¤­¤«¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£Î㤨¤Ð¡¢

union foo { int i; double d; };

union foo f = { d: 4 };

¤Ï¡¢4 ¤ò double ¤ËÊÑ´¹¤·¡¢ÆóÈÖÌܤÎÍ×ÁǤȤ·¤Æ¶¦ÍÑÂΤ˳ÊǼ¤¹¤ë¡£ÂоÈŪ¤Ë¡¢4 ¤ò union foo ·¿¤ËÊÑ´¹¤¹¤ë¤È¡¢À°¿ô i ¤È¤·¤Æ¶¦ÍÑÂΤ˳ÊǼ¤¹¤ë¡£²¿¸Î¤Ê¤é¡¢4 ¤¬À°¿ô¤À¤«¤é¤Ç¤¢¤ë¡£(See Cast to Union.)

¤³¤ÎÍ×ÁǤË̾Á°¤ò¤Ä¤±¤ëÊýË¡¤È¡¢Ä̾ï¤Î C ¤ÎϢ³¤¹¤ëÍ×ÁǤò½é´ü²½¤¹¤ëÊýË¡¤òÁȤ߹ç¤ï¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£½é´ü²½»Ò¤ÎÍ×ÁǤǥé¥Ù¥ë¤Î¤Ê¤¤¤â¤Î¤Ï¤½¤ì¤¾¤ì¡¢ÇÛÎ󤢤뤤¤Ï¹½Â¤ÂΤμ¡¤ÎϢ³¤¹¤ëÍ×ÁǤËŬÍѤµ¤ì¤ë¡£Î㤨¤Ð¡¢

int a[6] = { [1] = v1, v2, [4] = v4 };

¤Ï¡¢°Ê²¼¤Î¤â¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£

int a[6] = { 0, v1, v2, 0, v4, 0 };

ÇÛÎó½é´ü²½»Ò¤ÎÍ×ÁǤ˥é¥Ù¥ë¤òÉÕ¤±¤ë¤Î¤Ï¡¢Åº¤¨»ú¤¬Ê¸»ú¤À¤Ã¤¿¤ê¡¢enum ·¿¤Ë°¤¹¤ë¾ì¹ç¤ËÆÃ¤ËÊØÍø¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£

int whitespace[256]
  = { [' '] = 1, ['\t'] = 1, ['\h'] = 1,
      ['\f'] = 1, ['\n'] = 1, ['\r'] = 1 };


Node:Case Ranges, Next:, Previous:Labeled Elements, Up:C Extensions

case ¤ÎÈϰϻØÄê

°ì¸Ä¤Î case ¥é¥Ù¥ë¤Ë¤¢¤ëÈϰϤÎϢ³¤¹¤ëÃͤò°Ê²¼¤Î¤è¤¦¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

case low ... high:

¤³¤ì¤Ï¡¢Å¬Àڤʿô¤Î case ¥é¥Ù¥ë¤òÍѰդ·¡¢¤½¤Î°ì¤Ä°ì¤Ä¤¬low ¤«¤é high ¤ÎÈϰϤγÆÀ°¿ôÃͤò»ý¤Ä¤è¤¦¤Ë¤¹¤ë¤Î¤ÈƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¡£¤³¤³¤Ç¡¢low ¤È high ¤â´Þ¤Þ¤ì¤ë¡£

¤³¤Îµ¡Ç½¤Ï¡¢ASCII ʸ»ú¥³¡¼¥É¤ÎÈϰϤ˻Ȥ¦¤È¤È¤ê¤ï¤±ÊØÍø¤Ç¤¢¤ë¡£

case 'A' ... 'Z':

Ãí°Õ¡£... ¤Îξ¦¤Ë¤Ï¶õÇò¤òÃÖ¤¯¤³¤È¡£¤½¤¦¤·¤Ê¤¤¤È¡¢¤½¤ì¤òÀ°¿ôÃͤȤ·¤Æ»È¤¦¤È¤­¤Ë´Ö°ã¤Ã¤Æ²ò¼á¤µ¤ì¤ë¡£Î㤨¤Ð¡¢

case 1 ... 5:

¤È½ñ¤¯¤è¤¦¤Ë¤·¤Æ¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ï¤·¤Ê¤¤¤³¤È¡£

case 1...5:


Node:Cast to Union, Next:, Previous:Case Ranges, Up:C Extensions

¶¦ÍÑÂη¿¤Ø¤Î¥­¥ã¥¹¥È

¶¦ÍÑÂη¿¤Ø¤Î¥­¥ã¥¹¥È¤Ï¡¢»ØÄꤵ¤ì¤¿·¿¤¬¶¦ÍÑÂη¿¤Ç¤¢¤ë¤³¤È¤ò½ü¤±¤Ð¾¤Î¥­¥ã¥¹¥È¤ÈƱ¤¸¤Ç¤¢¤ë¡£·¿¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢union tag ¤«typedef ̾¤Ç²Äǽ¤Ç¤¢¤ë¡£¤À¤¬¡¢¶¦ÍÑÂΤؤΥ­¥ã¥¹¥È¤Ï¼ÂºÝ¤Ë¤Ï¥³¥ó¥¹¥È¥é¥¯¥¿¤Ç¤¢¤ê¡¢¥­¥ã¥¹¥È¤Ç¤Ï¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢Ä̾ï¤Î¥­¥ã¥¹¥È¤Î¤è¤¦¤Êº¸ÊÕÃͤÏÀ¸¤¸¤Ê¤¤¡£(See Constructors.)

¶¦ÍÑÂη¿¤Ë¥­¥ã¥¹¥È²Äǽ¤Ê·¿¤Ï¡¢¶¦ÍÑÂΤΥá¥ó¥Ð¤Î·¿¤Ç¤¢¤ë¡£¤¹¤Ê¤ï¤Á¡¢°Ê²¼¤Î¤è¤¦¤Ê¶¦ÍÑÂΤÈÊÑ¿ô¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤ë¤È¡¢

union foo { int i; double d; };
int x;
double y;

x ¤È y ¤Ï¤É¤Á¤é¤â union foo ·¿¤Ë¥­¥ã¥¹¥È²Äǽ¤Ç¤¢¤ë¡£

¥­¥ã¥¹¥È¤ò¶¦ÍÑÂη¿ÊÑ¿ô¤Ø¤ÎÂåÆþ¤Î±¦ÊդȤ·¤Æ»È¤¦¤Î¤Ï¡¢¶¦ÍÑÂΤΥá¥ó¥Ð¤Ë³ÊǼ¤¹¤ë¤Î¤ÈƱ¤¸¤³¤È¤Ç¤¢¤ë¡£

union foo u;
...
u = (union foo) x  ==  u.i = x
u = (union foo) y  ==  u.d = y

¤Þ¤¿¡¢¶¦ÍÑÂΤΥ­¥ã¥¹¥È¤ò´Ø¿ô¤Î°ú¿ô¤È¤·¤Æ»È¤¦¤³¤È¤â¤Ç¤­¤ë¡£

void hack (union foo);
...
hack ((union foo) x);


Node:Function Attributes, Next:, Previous:Cast to Union, Up:C Extensions

´Ø¿ô°À­¤ÎÀë¸À

GNU C ¤Ç¤Ï¡¢ÆÉ¼Ô¤Î¥×¥í¥°¥é¥à¤Ç¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë´Ø¿ô¤Ë¤Ä¤¤¤Æ°ìÄê¤ÎÀë¸À¤ò¹Ô¤¦¤È¡¢GNU CC ¤¬´Ø¿ô¸Æ½Ð¤·¤òºÇŬ²½¤·¤¿¤ê¡¢ÆÉ¼Ô¤Î¥³¡¼¥É¤ò¤µ¤é¤ËÃí°Õ¿¼¤¯¸¡ºº¤¹¤ë¤³¤È¤Î¼ê½õ¤±¤È¤Ê¤ë¡£

¥­¡¼¥ï¡¼¥É __attribute__ ¤ò»È¤¦¤³¤È¤Ë¤è¤ê¡¢Àë¸À¤ò½ñ¤¯¤È¤­¤ËÆÃÊ̤ʰÀ­¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¥­¡¼¥ï¡¼¥É¤Î¸å¤Ë¡¢Æó½Å¤Î³ç¸Ì¤Ç°Ï¤ó¤À°À­¤Î»ØÄê¤òÃÖ¤¯¡£´Ø¿ô¤ËÂФ·¤Æ¤Ï¸½ºß 9 ¸Ä¤Î°À­¡¢noreturn¡¢const¡¢format¡¢no_instrument_function¡¢section¡¢constructor¡¢destructor¡¢unused¡¢weak ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£section ¤ò´Þ¤à¤½¤Î¾¤Î°À­¤Ï¡¢ÊÑ¿ôÀë¸À(see Variable Attributes)¤ä·¿(see Type Attributes) ¤ËÂФ·¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£

¤Þ¤¿¡¢³Æ¥­¡¼¥ï¡¼¥É¤ÎÁ°¸å¤Ë __ ¤òÉÕ¤±¤¿Â°À­¤ò»ØÄꤷ¤Æ¤âÎɤ¤¡£¤³¤ì¤Ë¤è¤ê¡¢Æ±¤¸Ì¾Á°¤Î¥Þ¥¯¥í¤¬¤¢¤ë²ÄǽÀ­¤ò¿´ÇÛ¤¹¤ë¤³¤È¤Ê¤¯¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ç¤³¤ì¤é¤Î°À­¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£Î㤨¤Ð¡¢noreturn ¤ÎÂå¤ï¤ê¤Ë __noreturn__ ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

noreturn
ɸ½à¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¤¦¤Á´ö¤Ä¤«¤Ï¡¢abort ¤ä exit ¤Î¤è¤¦¤ËÌá¤ë¤³¤È¤¬ÉÔ²Äǽ¤Ê´Ø¿ô¤¬¤¢¤ë¡£GNU CC ¤Ï¤³¤Î¤³¤È¤ò´û¤ËÃΤäƤ¤¤ë¡£¥×¥í¥°¥é¥à¤ÎÃæ¤Ë¤Ï¡¢·è¤·¤ÆÌá¤é¤Ê¤¤´Ø¿ô¤ò¼«Ê¬¤ÇÄêµÁ¤¹¤ë¤³¤È¤â¤¢¤ë¤À¤í¤¦¡£ÆÉ¼Ô¤Ï¡¢¤½¤¦¤¤¤¦´Ø¿ô¤ò noreturn ¤ÈÀë¸À¤¹¤ë¤³¤È¤Ç¡¢¤½¤Î»ö¼Â¤ò GNU CC ¤ËÃΤ餻¤ë¤³¤È¤¬¤Ç¤­¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¤¤¿¤È¤¹¤ë¡£
void fatal () __attribute__ ((noreturn));

void
fatal (...)
{
  ... /* Print error message. */ ...
  exit (1);
}

¥­¡¼¥ï¡¼¥É noreturn ¤òÉÕ¤±¤ë¤È¡¢GNU CC ¤Ï´Ø¿ô fatal ¤¬Ìá¤ê¤¨¤Ê¤¤¤³¤È¤òÁÛÄꤹ¤ë¡£¤½¤¦¤¹¤ë¤È¡¢fatal ¤¬Ìá¤Ã¤¿¾ì¹ç¤Ë²¿¤¬µ¯¤­¤ë¤«¤ò¹Í¤¨¤ë¤³¤È¤Ê¤·¤ËºÇŬ²½¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤Ë¤è¤ê¤Á¤ç¤Ã¤È¤À¤±Îɤ¤¥³¡¼¥É¤Ë¤Ê¤ë¡£¤â¤Ã¤È½ÅÍפʤΤϡ¢ÊÑ¿ô¤¬½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤¤¤¦¸«¤»³Ý¤±¤Î·Ù¹ð¤ò²¡¤µ¤¨¤ë¤³¤È¤¬¤Ç¤­¤ëÅÀ¤Ë¤¢¤ë¡£

¸Æ½Ð¤·Â¦´Ø¿ô¤Ë¤è¤ê¥»¡¼¥Ö¤µ¤ì¤ë¥ì¥¸¥¹¥¿¤¬¡¢noreturn ´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¥ê¥¹¥È¥¢¤µ¤ì¤ë¤ÈÁÛÄꤷ¤Æ¤Ï¤¤¤±¤Ê¤¤¡£

nonreturn ¤È»ØÄꤵ¤ì¤¿´Ø¿ô¤Ë void ·¿°Ê³°¤ÎÌá¤êÃÍ·¿¤ò»ý¤¿¤»¤ë¤Î¤Ï°ÕÌ£¤¬¤Ê¤¤¡£

noreturn °À­¤Ï¡¢GNU C ¤Î¥Ð¡¼¥¸¥ç¥ó 2.5 °ÊÁ°¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£Ìá¤ë¤³¤È¤Î¤Ê¤¤´Ø¿ô¤òÀë¸À¤¹¤ë¤â¤¦°ì¤Ä¤ÎÊýË¡¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡£¤³¤ÎÊýË¡¤Ï¡¢¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤â»È¤¨¤ë¤·¡¢¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Î´ö¤Ä¤«¤Ç¤â»È¤¨¤ë¡£

typedef void voidfn ();

volatile voidfn fatal;

const
¿¤¯¤Î´Ø¿ô¤Ï°ú¿ô°Ê³°¤ÎÃͤò¸«¤Ê¤¤¤·¡¢Ìá¤êÃͰʳ°¤ÎÃͤ˱ƶÁ¤òÍ¿¤¨¤Ê¤¤¡£¤³¤Î¤è¤¦¤Ê´Ø¿ô¤Ï¡¢Ã±¤Ê¤ë»»½Ñ±é»»»Ò¤ÈƱ¤¸¤è¤¦¤Ë¡¢¶¦ÄÌÉôʬ¼°ºï½ü¤È¥ë¡¼¥×ºÇŬ²½¤ÎŬÍѤò¼õ¤±¤ë¡£¤³¤¦¤¤¤¦´Ø¿ô¤Ï°À­ const ¤òÉÕ¤±¤ÆÀë¸À¤¹¤Ù¤­¤À¤í¤¦¡£Î㤨¤Ð¡¢
int square (int) __attribute__ ((const));

¤È¤¹¤ë¤È¡¢²Í¶õ¤Î´Ø¿ô square ¤Ï¡¢¥×¥í¥°¥é¥à¤¬¼¨¤¹¤è¤ê¤â¸Æ¤Ó½Ð¤¹²ó¿ô¤¬¾¯¤Ê¤¯¤Æ¤â°ÂÁ´¤Ç¤¢¤ë¤³¤È¤òɽ¤¹¡£

const °À­¤Ï¡¢GNU ¤Î¥Ð¡¼¥¸¥ç¥ó 2.5 °ÊÁ°¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£´Ø¿ô¤ËÉûºîÍѤ¬Ìµ¤¤¤³¤È¤òÀë¸À¤¹¤ëÊ̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢°Ê²¼¤ÎÊýË¡¤¬¤¢¤ë¡£¤³¤ì¤Ï¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤È´ö¤Ä¤«¤Î¸Å¤¤¥Ð¡¼¥¸¥ç¥ó¤Çưºî¤¹¤ë¡£

typedef int intfn ();

extern const intfn square;

¤³¤ÎÊýË¡¤Ï GNU C++ 2.6.0 °Ê¹ß¤Ç¤Ï»È¤¨¤Ê¤¤¡£¸À¸ì»ÅÍÍ¤Ç const ¤Ï¡¢Ìá¤êÃͤËÉÕ¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

¥Ý¥¤¥ó¥¿¤Î°ú¿ô¤¬¤¢¤ê¡¢¤½¤ì¤Ë¤è¤ê»Ø¤·¼¨¤µ¤ì¤ë¥Ç¡¼¥¿¤ò»²¾È¤·¤Æ¤¤¤ë´Ø¿ô¤Ï¡¢const ¤ÈÀë¸À¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¡£Æ±Íͤˡ¢Èó const ´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë´Ø¿ô¤ÏÉáÄÌ¤Ï const ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£void ·¿¤Î´Ø¿ô¤Ë const ¤òÉÕ¤±¤ë¤Î¤Ï°ÕÌ£¤¬¤Ê¤¤¡£

format (archetype, string-index, first-to-check)
°À­ format ¤Ï¡¢´Ø¿ô¤¬ printf ¤ä scanf¡¢strftime ·Á¼°¤Î°ú¿ô¤ò¼è¤ê¡¢¤½¤Î°ú¿ô¤ò¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄêʸ»úÎó¤ËÂФ·¤Æ·¿¸¡ºº¤ò¹Ô¤¦¤³¤È¤ò»ØÄꤹ¤ë¡£Î㤨¤Ð¡¢
extern int
my_printf (void *my_object, const char *my_format, ...)
      __attribute__ ((format (printf, 2, 3)));

¤ÈÀë¸À¤¹¤ë¤È¡¢GNU CC ¤Ï¡¢my_printf ¤Ø¤Î¸Æ½Ð¤·¤Î°ú¿ô¤ò¡¢ printf ·Á¼°¤Î¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄêʸ»úÎó¤Ç¤¢¤ë°ú¿ô my_format ¤È¤Î°ì´ÓÀ­¤Ë¤Ä¤¤¤Æ¸¡ºº¤ò¹Ô¤ï¤»¤ë¡£

¥Ñ¥é¥á¡¼¥¿ archetype ¤Ï¡¢¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎ󤬤ɤΤ褦¤Ë²ò¼á¤µ¤ì¤ë¤«¤ò·è¤á¡¢printf¡¢scanf¡¢strftime ¤Î¤É¤ì¤«¤Ë¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£¥Ñ¥é¥á¡¼¥¿ string-index ¤Ï¤É¤Î°ú¿ô¤¬¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄêʸ»úÎó¤Î°ú¿ô¤«¤ò»ØÄꤹ¤ë(1 ¤«¤é»Ï¤á¤ë)¡£°ìÊý¡¢first-to-check ¤Ï¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄêʸ»úÎó¤ËÂФ·¤Æ¸¡ºº¤ò¹Ô¤¦¤Ù¤­ºÇ½é¤Î°ú¿ô¤ÎÈÖ¹æ¤Ç¤¢¤ë¡£¸¡ºº¤Ë»È¤¨¤ë°ú¿ô¤¬¤Ê¤¤´Ø¿ô(Î㤨¤Ð vprintf)¤ËÂФ·¤Æ¤Ï¡¢3ÈÖÌܤΥѥé¥á¡¼¥¿¤ò¥¼¥í¤È»ØÄꤹ¤ë¤³¤È¡£¤³¤Î¾ì¹ç¡¢¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Ë¤Ä¤¤¤Æ¤À¤±°ì´ÓÀ­¤¬¤¢¤ë¤«¤É¤¦¤«¤Î¸¡ºº¤¬¹Ô¤ï¤ì¤ë¡£

¾å¤ÎÎã¤Ç¸À¤¦¤È¡¢¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó (my_format) ¤Ï´Ø¿ô my_print ¤ÎÆóÈÖÌܤΰú¿ô¤Ç¤¢¤ê¡¢¸¡ºº¤¹¤Ù¤­°ú¿ô¤Ï3ÈÖÌܤΰú¿ô¤«¤é»Ï¤Þ¤ë¤Î¤Ç¡¢format °À­¤ÎÀµ¤·¤¤¥Ñ¥é¥á¡¼¥¿¤Ï2 ¤È 3 ¤Ë¤Ê¤ë¡£

format °À­¤ò»È¤¦¤È¡¢¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤ò°ú¿ô¤È¤·¤Æ¼è¤ëÆÉ¼Ô¼«¿È¤Î´Ø¿ô¤òǧ¼±¤·¤Æ¡¢GNU CC ¤¬¤³¤ì¤é¤Î´Ø¿ô¤Ø¤Î¸Æ½Ð¤·¤Ë¸í¤ê¤¬¤Ê¤¤¤«¤É¤¦¤«¸¡ºº¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£GCC ¤Ï ANSI ¥é¥¤¥Ö¥é¥ê´Ø¿ô printf¡¢fprintf¡¢sprintf¡¢scanf¡¢fscanf¡¢sscanf¡¢strftime¡¢vprintf¡¢vfprintf¡¢vsprintf ¤Ë¤Ä¤¤¤Æ¤Ï¡¢·Ù¹ð¤òÍ׵ᤷ¤¿¤È¤­(-Wformat ¤ò»ØÄꤷ¤¿¤È¤­)¤Ï¡¢¾ï¤Ë¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¸¡ºº¤¹¤ë¤Î¤Ç¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë stdio.h ¤ò½¤Àµ¤¹¤ëɬÍפϤʤ¤¡£

format_arg (string-index)
format_arg °À­¤Ï¡¢´Ø¿ô¤¬¡¢ printf ¤¢¤ë¤¤¤Ï scanf ·Á¼°¤Î°ú¿ô¤ò¼è¤ê¡¢¤½¤ì¤òÊѹ¹¤·(Î㤨¤ÐÊ̤θÀ¸ì¤ØËÝÌõ¤¹¤ë)¡¢¤µ¤é¤Ëprintf ¤¢¤ë¤¤¤Ï scanf ·Á¼°¤Î´Ø¿ô¤ËÅϤ¹¤È¤¤¤¦¤³¤È¤ò»ØÄꤹ¤ë¡£Î㤨¤Ð¡¢
extern char *
my_dgettext (char *my_domain, const char *my_format)
      __attribute__ ((format_arg (2)));

¤ÈÀë¸À¤¹¤ë¤È¡¢GCC ¤Ï¡¢·ë²Ì¤¬ printf¡¢scanf¡¢strftime ·Á¼°¤Î´Ø¿ô¤ËÅϤµ¤ì¤ë my_dgettext ¤Ø¤Î¸Æ½Ð¤·¤Ë¸½¤ì¤ë°ú¿ô¤ò¡¢printf ·Á¼°¤Î¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó°ú¿ô my_format ¤ÈÈæ¤Ù¤Æ¡¢°ì´ÓÀ­¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¸¡ºº¤¹¤ë¡£

¥Ñ¥é¥á¡¼¥¿ string-index ¤Ï¡¢¤É¤Î°ú¿ô¤¬¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó°ú¿ô¤Ç¤¢¤ë¤«¤ò»ØÄꤹ¤ë(1¤«¤é»Ï¤Þ¤ë)¡£

format-arg °À­¤ò»È¤¦¤È¡¢¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤ò½¤Àµ¤¹¤ë¤è¤¦¤ÊÆÉ¼Ô¼«¿È¤Î´Ø¿ô¤òǧ¼±¤·¤Æ¡¢°ú¿ô¤¬¡¢ÆÉ¼Ô¼«¿È¤Î´Ø¿ô¤Î°ì¤Ä¤Ø¤Î¸Æ½Ð¤·¤Ç¤¢¤ë¤è¤¦¤Ê printf¡¢scanf¡¢strftime´Ø¿ô¤Î¸Æ½Ð¤·¤ò¸¡ºº¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£GCC ¤Ï¡¢gettext¡¢dgettext¡¢dcgettext ¤ò¾ï¤Ë¤³¤Î¤è¤¦¤Ë¼è¤ê°·¤¦¡£

no_instrument_function
-finstrument-functions ¤ò»ØÄꤹ¤ë¤È¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤ò¹Ô¤¦´Ø¿ô¤Ø¤Î¸Æ½Ð¤·¤¬¡¢¤Û¤È¤ó¤É¤Î¥æ¡¼¥¶¤¬¥³¥ó¥Ñ¥¤¥ë¤·¤¿´Ø¿ô¤ÎÆþ¤ê¸ý¤È½Ð¸ý¤ËÀ¸À®¤µ¤ì¤ë¡£¤³¤Î°À­¤ò»ØÄꤷ¤¿´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¬¹Ô¤ï¤ì¤Ê¤¤¡£
section ("section-name")
GCC ¤Ï¡¢ÉáÄÌ¡¢À¸À®¤·¤¿¥³¡¼¥É¤ò text ¥»¥¯¥·¥ç¥ó¤ËÃÖ¤¯¡£¤À¤¬¡¢»þ¤Ë¤è¤Ã¤Æ¤Ï¡¢ÄɲäΥ»¥¯¥·¥ç¥ó¤¬É¬Íפˤʤ俤ꡢ¤¢¤ëÆÃÄê¤Î´Ø¿ô¤òÆÃÊ̤ʥ»¥¯¥·¥ç¥ó¤ËÃÖ¤¯É¬Íפ¬½Ð¤Æ¤¯¤ë¡£section °À­¤Ï¡¢´Ø¿ô¤òÆÃÄê¤Î¥»¥¯¥·¥ç¥ó¤ËÃÖ¤¯¤³¤È¤ò»ØÄꤹ¤ë¡£Î㤨¤Ð¡¢
extern void foobar (void) __attribute__ ((section ("bar")));

¤ÈÀë¸À¤¹¤ë¤È¡¢´Ø¿ô foobar ¤Ï bar ¥»¥¯¥·¥ç¥ó¤ËÃÖ¤«¤ì¤ë¡£

¥Õ¥¡¥¤¥ë·Á¼°¤Ë¤è¤Ã¤Æ¤Ï¡¢¾¡¼ê¤Ë¥»¥¯¥·¥ç¥ó¤òºî¤ë¤³¤È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢section °À­¤ÏÁ´¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç»È¤¨¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£¤¢¤ë¥â¥¸¥å¡¼¥ë¤ÎÆâÍÆÁ´Éô¤ò¤¢¤ëÆÃÄê¤Î¥»¥¯¥·¥ç¥ó¤Ë°Ü¤·¤¿¤¤¾ì¹ç¤Ï¡¢¥ê¥ó¥«¤Îµ¡Ç½¤ò»È¤¦¤³¤È¤ò¹Í¤¨¤Æ¤ß¤ÆÍߤ·¤¤¡£

constructor
destructor
constructor °À­¤Ï¡¢»ØÄꤷ¤¿´Ø¿ô¤¬¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤¬main () ¤ËÆþ¤ëÁ°¤Ë¼«Æ°Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡£Æ±¤¸¤è¤¦¤Ë¡¢destructor °À­¤ò»ØÄꤹ¤ë¤È¡¢¤½¤Î´Ø¿ô¤¬¡¢main () ¤¬½ªÎ»¤·¤¿¸å¤« exit () ¤¬¸Æ¤Ð¤ì¤¿¸å¤Ë¡¢¼«Æ°Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡£¤³¤ì¤é¤Î°À­¤ò»ØÄꤷ¤¿´Ø¿ô¤Ï¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤Î´Ö¤Ë°ÅÌۤ˻Ȥï¤ì¤ë¥Ç¡¼¥¿¤ò½é´ü²½¤¹¤ë¤Î¤Ë»È¤¨¤ë¡£

¤³¤ì¤é¤Î°À­¤Ï Objective C ¤Ë¤Ä¤¤¤Æ¤Ï¸½ºß¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£

unused
¤³¤Î°À­¤Ï¡¢´Ø¿ô¤Ë¤Ä¤±¤ë¤È¡¢¤½¤Î´Ø¿ô¤Ï»È¤ï¤ì¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¤È¤¤¤¦¤³¤È¤òɽ¤¹¡£GNU CC ¤Ï¤³¤Î´Ø¿ô¤ËÂФ·¤Æ·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤Ê¤ë¡£GNU C++ ¤Ï¸½ºß¡¢¥Ñ¥é¥á¡¼¥¿¤¬ C++ ¤ÇÍ­¸ú¤Ç¤Ê¤¤ÄêµÁ¤È¤·¤Æ¤Ï¡¢¤³¤Î°À­¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¡£
weak
weak °À­¤ò»È¤¦¤È¡¢¤½¤ì¤ò»ØÄꤷ¤¿Àë¸À¤Ï¡¢¥°¥í¡¼¥Ð¥ë¥·¥ó¥Ü¥ë¤Ç¤Ï¤Ê¤¯¥¦¥£¡¼¥¯¥·¥ó¥Ü¥ë¤È¤·¤ÆÀ¸À®¤µ¤ì¤ë¡£¤³¤ì¤Ï¼ç¤Ë¥æ¡¼¥¶¥³¡¼¥É¤Ç¾å½ñ¤­²Äǽ¤Ê¥é¥¤¥Ö¥é¥ê´Ø¿ô¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¤¬¡¢´Ø¿ô¤Ç¤Ê¤¤Àë¸À¤Ç¤â»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¥¦¥£¡¼¥¯¥·¥ó¥Ü¥ë¤Ï ELF ¥¿¡¼¥²¥Ã¥È¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£GNU ¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤ò»È¤¦¾ì¹ç¤Ï a.out ¥¿¡¼¥²¥Ã¥È¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£
alias ("target")
alias °À­¤ò»ØÄꤹ¤ë¤È¡¢¤½¤ÎÀë¸À¤Ï²¿¤«Ê̤Υ·¥ó¥Ü¥ë¤ÎÊÌ̾¤È¤·¤ÆÀ¸À®¤µ¤ì¤ë¡£Ê̤Υ·¥ó¥Ü¥ë¤Ï¤«¤Ê¤é¤º»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Î㤨¤Ð¡¢
void __f () { /* do something */; }
void f () __attribute__ ((weak, alias ("__f")));

¤È¤¹¤ë¤È¡¢f ¤ò __f ¤Î¥¦¥£¡¼¥¯¤ÊÊÌ̾¤È¤·¤ÆÀë¸À¤¹¤ë¡£C++ ¤Ç¤Ï¡¢¸µ¤Î̾Á°¤Ë¤Ï¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿Ì¾Á°¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

Á´¤Æ¤Î¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç¤³¤Î°À­¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£

no_check_memory_usage
-fcheck-memory-usage ¤ò»ØÄꤹ¤ë¤È¡¢¥µ¥Ý¡¼¥È¡¦¥ë¡¼¥Á¥ó¤Î¸Æ½Ð¤·¤¬¤Û¤È¤ó¤É¤Î¥á¥â¥ê¥¢¥¯¥»¥¹¤ÎÁ°¤ËÀ¸À®¤µ¤ì¡¢¥µ¥Ý¡¼¥È¥³¡¼¥É¤¬»ÈÍѾõ¶·¤òµ­Ï¿¤Ç¤­¤ë¤è¤¦¤Ë¤·¡¢¤«¤ÄÈó½é´ü²½¤Þ¤¿Ì¤³äÅö¤Î¥á¥â¥êÎΰè¤ò»È¤Ã¤¿¤Î¤ò¸¡ÃΤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¡£GCC ¤¬Àµ¤·¤¯°·¤¨¤Ê¤¤¤Î¤Ç¡¢asm ʸ¤Ïµö¤µ¤ì¤Ê¤¤¡£´Ø¿ô¤Ë¤³¤Î°À­¤òÉÕ¤±¤ÆÀë¸À¤¹¤ë¤È¡¢¤½¤Î´Ø¿ô¤ËÂФ¹¤ë¥á¥â¥ê¸¡ºº¥³¡¼¥É¤ò½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤·¡¢°Û¤Ê¤ë¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤ÆÊ̸Ĥ˥³¥ó¥Ñ¥¤¥ë¤»¤º¤È¤âasm ʸ¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¡¢¤µ¤é¤Ë¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤â̵¸ÂºÆµ¢¤Ë¤Ê¤ë¤³¤È¤Ê¤¯¡¢Ë¾¤à¤Ê¤éÆÉ¼Ô¼«¿È¤Î¥µ¥Ý¡¼¥È¥ë¡¼¥Á¥ó¤ò½ñ¤±¤ë¤è¤¦¤Ë¤Ê¤ë¡£
regparm (number)
Intel 386 ¤Ç¤Ï¡¢regparm °À­¤ò»ØÄꤹ¤ë¤È¡¢number ¸Ä¤ÎÀ°¿ô°ú¿ô¤ò¡¢¥¹¥¿¥Ã¥¯¤ÎÂå¤ï¤ê¤Ë¥ì¥¸¥¹¥¿ EAX¡¢EDX¡¢ECX ¤ÇÅϤ¹¤è¤¦¤Ë¤Ê¤ë¡£²ÄÊÑ¿ô°ú¿ô¤ò¼è¤ë´Ø¿ô¤Ï¡¢°ÍÁ³¤È¤·¤ÆÁ´Éô¤Î°ú¿ô¤¬¥¹¥¿¥Ã¥¯¤ÇÅϤµ¤ì¤ë¡£
stdcall
Intel 386 ¤Ç¤Ï¡¢stdcall °À­¤ò»ØÄꤹ¤ë¤È¡¢²ÄÊÑ¿ô°ú¿ô¤ò¼è¤ë¤Î¤Ç¤Ê¤¤¸Â¤ê¡¢¸Æ¤Ð¤ì¤¿´Ø¿ô¤¬¡¢°ú¿ô¤òÅϤ¹¤Î¤Ë»È¤ï¤ì¤¿¥¹¥¿¥Ã¥¯¤ò¥Ý¥Ã¥×¤¹¤ë¤ÈÁÛÄꤹ¤ë¡£

Windows NT ¸þ¤± PowerPC ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¸½ºß¡¢stdcall °À­¤ò̵»ë¤¹¤ë¡£

cdecl
Intel 386 ¤Ç¤Ï¡¢cdecl °À­¤ò»ØÄꤹ¤ë¤È¡¢²ÄÊÑ¿ô°ú¿ô¤ò¼è¤ë¤Î¤Ç¤Ê¤¤¸Â¤ê¡¢¸Æ¤Ó¤À¤·Â¦´Ø¿ô¤¬¡¢°ú¿ô¤òÅϤ¹¤Î¤Ë»È¤ï¤ì¤¿¥¹¥¿¥Ã¥¯¤ò¥Ý¥Ã¥×¤¹¤ë¤ÈÁÛÄꤹ¤ë¡£¤³¤ì¤Ï¡¢-mrtd ¥ª¥×¥·¥ç¥ó¤Î¸ú²Ì¤òÂǤÁ¾Ã¤¹¤Î¤Ë»È¤¨¤ë¡£

Windows NT ¸þ¤± PowerPC ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¸½ºß¡¢cdecl °À­¤ò̵»ë¤¹¤ë¡£

longcall
RS/6000 ¤È PowerPC ¤Ç¤Ï¡¢longcall °À­¤ò»ØÄꤹ¤ë¤ÈGCC ¤Ï¤½¤Î´Ø¿ô¤ò¾ï¤Ë¥Ý¥¤¥ó¥¿·Ðͳ¤Ç¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¸½ºß°ÌÃÖ¤«¤é 64 ¥á¥¬¥Ð¥¤¥È(67,108,864¥Ð¥¤¥È)°Ê¾åÎ¥¤ì¤¿°ÌÃ֤ˤ¢¤ë´Ø¿ô¤â¸Æ¤Ó½Ð¤»¤ë¤è¤¦¤Ë¤Ê¤ë¡£
dllimport
PowrPC ¤Ç Windows NT ¤ò²ÔƯ¤·¤Æ¤¤¤ë¾ì¹ç¡¢dllimport °À­¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï¡¢¤½¤Î´Ø¿ô¤ò¡¢Windows NT dll ¥é¥¤¥Ö¥é¥ê¤Ë¤è¤êÀßÄꤵ¤ì¤ë´Ø¿ô¥Ý¥¤¥ó¥¿¤Ø¤Î¥°¥í¡¼¥Ð¥ë¥Ý¥¤¥ó¥¿·Ðͳ¤Ç¸Æ¤Ó½Ð¤¹¡£¤³¤Î¥Ý¥¤¥ó¥¿Ì¾¤Ï¡¢__imp_ ¤È¤½¤Î´Ø¿ô̾¤òÁȤ߹ç¤ï¤»¤Æºî¤é¤ì¤ë¡£
dllexport
PowrPC ¤Ç Windows NT ¤ò²ÔƯ¤·¤Æ¤¤¤ë¾ì¹ç¡¢dllexport °À­¤ò»ØÄꤹ¤ë¤È¡¢GCC ¤Ï¡¢´Ø¿ô¥Ý¥¤¥ó¥¿¤Ø¤Î¥°¥í¡¼¥Ð¥ë¥Ý¥¤¥ó¥¿¤òÄ󶡤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢¤½¤Î´Ø¿ô¤Ï dllimport °À­¤ò»ØÄꤹ¤ë¤³¤È¤Ç¸Æ¤Ó½Ð¤»¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤Î¥Ý¥¤¥ó¥¿Ì¾¤Ï¡¢__imp_ ¤È¤½¤Î´Ø¿ô̾¤òÁȤ߹ç¤ï¤»¤Æºî¤é¤ì¤ë¡£
exception (except-func [, except-arg])
PowrPC ¤Ç Windows NT ¤ò²ÔƯ¤·¤Æ¤¤¤ë¾ì¹ç¡¢exception °À­¤ò»ØÄꤹ¤ë¤È GCC ¤Ï¡¢Àë¸À¤µ¤ì¤¿´Ø¿ô¤ËÂФ·À¸À®¤µ¤ì¤ë¹½Â¤²½Îã³°¥Æ¡¼¥Ö¥ë¤Î¥¨¥ó¥È¥ê¤ò½¤Àµ¤¹¤ë¡£Ê¸»úÎó¤Þ¤¿¤Ï¼±ÊÌ»Ò except-func ¤¬¡¢¹½Â¤²½Îã³°¥Æ¡¼¥Ö¥ë¤Î 3ÈÖÌܤΥ¨¥ó¥È¥ê¤ËÃÖ¤«¤ì¤ë¡£¤³¤ì¤Ï¡¢¤¢¤ë´Ø¿ô¤òɽ¤¹¡£¤³¤Î´Ø¿ô¤Ï¡¢Îã³°¤¬È¯À¸¤·¤¿¤È¤­¤ËÎã³°½èÍýµ¡¹½¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë¡£»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢Ê¸»úÎ󤢤뤤¤Ï¼±ÊÌ»Ò except-arg ¤¬¡¢¹½Â¤²½Îã³°¥Æ¡¼¥Ö¥ë¤Î4ÈÖÌܤΥ¨¥ó¥È¥ê¤ËÃÖ¤«¤ì¤ë¡£
function_vector
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢H8/300 ¤È H8/300H ¤Ë¤ª¤¤¤Æ¡¢»ØÄꤷ¤¿´Ø¿ô¤¬´Ø¿ô¥Ù¥¯¥¿¤ò·Ðͳ¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ëɬÍפ¬¤¢¤ë¤³¤È¤ò¼¨¤¹¤Î¤Ë»È¤¦¡£´Ø¿ô¥Ù¥¯¥¿·Ðͳ¤·¤Æ´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥³¡¼¥É¥µ¥¤¥º¤¬¾®¤µ¤¯¤Ê¤ë¡£¤¿¤À¤·¡¢´Ø¿ô¥Ù¥¯¥¿Â礭¤µ¤ËÀ©¸Â¤¬¤¢¤ê(H8/300 ¤Ç¤ÏºÇÂç 128 ¥¨¥ó¥È¥ê¡¢H8/300H ¤Ç¤ÏºÇÂç 64 ¥¨¥ó¥È¥ê¤Ç¤¢¤ë)¡¢³ä¤ê¹þ¤ß¥Ù¥¯¥¿¤È¥¹¥Ú¡¼¥¹¤ò¶¦Í­¤¹¤ë¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤òÀµ¤·¤¯Æ°ºî¤µ¤»¤ë¤Ë¤Ï¡¢GNU binutils ¥Ð¡¼¥¸¥ç¥ó 2.7 °Ê¹ß¤Î GAS ¤È GLD ¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

interrupt_handler
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢H8/300 ¤È H8/300H ¤Ë¤ª¤¤¤Æ¡¢»ØÄꤷ¤¿´Ø¿ô¤¬³ä¤ê¹þ¤ß¥Ï¥ó¥É¥é¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¤Î¤Ë»È¤¦¡£GCC¤Ï¡¢¤³¤Î°À­¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢³ä¤ê¹þ¤ß¥Ï¥ó¥É¥é¤ÎÃæ¤Ç»È¤¦¤Î¤ËŬ¤·¤¿¡¢´Ø¿ôÆþ¤ê¸ýÅÀ¤È½Ð¸ýÅÀ¤ÎÌ¿ÎáÎó¤òÀ¸À®¤¹¤ë¡£
eightbit_data
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢H8/300 ¤È H8/300H ¤Ë¤ª¤¤¤Æ¡¢»ØÄꤷ¤¿ÊÑ¿ô¤¬8¥Ó¥Ã¥È¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤ËÃÖ¤«¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¤Î¤Ë»È¤¦¡£GCC ¤Ï¡¢8¥Ó¥Ã¥È¥Ç¡¼¥¿Îΰè¤Ë¤¢¤ë¥Ç¡¼¥¿¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÆÃÄê¤ÎÁàºî¤ËÂФ·¤è¤ê¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£8¥Ó¥Ã¥È¥Ç¡¼¥¿Îΰè¤Ï¡¢¹ç·× 256 ¥Ð¥¤¥È¤Î¥Ç¡¼¥¿¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤òÀµ¤·¤¯Æ°ºî¤µ¤»¤ë¤Ë¤Ï¡¢GNU binutils ¥Ð¡¼¥¸¥ç¥ó 2.7 °Ê¹ß¤Î GAS ¤È GLD ¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

tiny_data
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢H8/300 ¤È H8/300H ¤Ë¤ª¤¤¤Æ¡¢»ØÄꤷ¤¿ÊÑ¿ô¤¬¾®(tiny)¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤ËÃÖ¤«¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¤Î¤Ë»È¤¦¡£GCC ¤Ï¡¢¾®¥Ç¡¼¥¿Îΰè¤Ë¤¢¤ë¥Ç¡¼¥¿¤Ë¤Ä¤¤¤Æ¤Î¥í¡¼¥É¤È¥¹¥È¥¢¤ËÂФ·¤è¤ê¸úΨ¤ÎÎɤ¤¥³¡¼¥É¤òÀ¸À®¤¹¤ë¡£¾®¥Ç¡¼¥¿Îΰè¤Ï¡¢¹ç·×32¥­¥í¥Ð¥¤¥È¤è¤ê¤Á¤ç¤Ã¤È²¼²ó¤ëÂ礭¤µ¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¡£
interrupt
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢M32R/D ¤Ë¤ª¤¤¤Æ¡¢»ØÄꤷ¤¿´Ø¿ô¤¬³ä¤ê¹þ¤ß¥Ï¥ó¥É¥é¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¤Î¤Ë»È¤¦¡£GCC¤Ï¡¢¤³¤Î°À­¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢³ä¤ê¹þ¤ß¥Ï¥ó¥É¥é¤ÎÃæ¤Ç»È¤¦¤Î¤ËŬ¤·¤¿¡¢´Ø¿ôÆþ¤ê¸ýÅÀ¤È½Ð¸ýÅÀ¤ÎÌ¿ÎáÎó¤òÀ¸À®¤¹¤ë¡£
model (model-name)
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢M32R/D ¤Ë¤ª¤¤¤Æ¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹²ÄǽÀ­¤È´Ø¿ô¤ËÂФ·¤ÆÀ¸À®¤µ¤ì¤ë¥³¡¼¥É¤òÀßÄꤹ¤ë¤Î¤Ë»È¤¦¡£¼±ÊÌ»Ò model-name ¤Ï¡¢small¡¢medium¡¢large ¤Î¤¦¤Á¤Î¤É¤ì¤«°ì¤Ä¤Ç¤¢¤ë¡£¤³¤ì¤é¤Ï¤½¤ì¤¾¤ì¥³¡¼¥É¡¦¥â¥Ç¥ë¤òɽ¤¹¡£

small ¥â¥Ç¥ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥á¥â¥ê¤Î²¼°Ì 16MB ¤ËÃÖ¤«¤ì(¤³¤ì¤Ë¤è¤ê¡¢¤½¤ì¤é¤Î¥¢¥É¥ì¥¹¤Ï ld24 Ì¿Îá¤Ë¤è¤ê¥í¡¼¥É²Äǽ¤Ë¤Ê¤ë)¡¢bl Ì¿Îá¤Ç¸Æ¤Ó¤À¤·²Äǽ¤Ç¤¢¤ë¡£

medium ¥â¥Ç¥ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢32¥Ó¥Ã¥È¥¢¥É¥ì¥¹¶õ´Ö¤Î¤É¤³¤ËÃÖ¤¤¤Æ¤âÎɤ¯(GCC ¤Ï¡¢¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò¥í¡¼¥É¤¹¤ë¤Î¤Ë seth/add3 Ì¿ÎáÎó¤òÀ¸À®¤¹¤ë)¡¢bl Ì¿Îá¤Ç¸Æ¤Ó¤À¤·²Äǽ¤Ç¤¢¤ë¡£

large ¥â¥Ç¥ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢32¥Ó¥Ã¥È¥¢¥É¥ì¥¹¶õ´Ö¤Î¤É¤³¤ËÃÖ¤¤¤Æ¤âÎɤ¯(GCC ¤Ï¡¢¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò¥í¡¼¥É¤¹¤ë¤Î¤Ë seth/add3 Ì¿ÎáÎó¤òÀ¸À®¤¹¤ë)¡¢bl Ì¿Îá¤Ç¤ÏÅþã²Äǽ¤Ç¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë(GCC ¤Ï¡¢¤µ¤é¤ËÃÙ¤¤ seth/add3/jl Ì¿ÎáÎó¤òÀ¸À®¤¹¤ë)¡£

Ê£¿ô¤Î°À­¤ò°ì¸Ä¤ÎÀë¸À¤ÎÃæ¤Ç»ØÄꤹ¤ë¤Ë¤Ï¡¢Æó½Å³ç¸Ì¤ÎÃæ¤Ë¥«¥ó¥Þ¤Ç¶èÀڤäÆÊ¤٤뤫¡¢°ì¤Ä¤Î°À­Àë¸À¤Îľ¸å¤Ë°À­Àë¸À¤ò³¤±¤Æ½ñ¤±¤ÐÎɤ¤¡£

__attribute__ µ¡Ç½¤ËÈ¿ÂФ¹¤ë¿Íã¤â¤¤¤Æ¡¢Âå¤ï¤ê¤ËANSI C ¤Î #pragma ¤ò»È¤¦¤Ù¤­¤À¤È¼çÄ¥¤·¤Æ¤¤¤ë¡£#pragma ¤ò»È¤ï¤Ê¤¤¤Î¤Ë¤ÏÍýͳ¤¬Æó¤Ä¤¢¤ë¡£

  1. #pragma ¥³¥Þ¥ó¥É¤ò¥Þ¥¯¥í¤«¤éÀ¸À®¤¹¤ë¤Î¤ÏÉÔ²Äǽ¤Ç¤¢¤ë¡£
  2. ¾¤Î¥³¥ó¥Ñ¥¤¥é¤ÇƱ¤¸ #pragma ¤¬¤É¤ó¤Ê°ÕÌ£¤ò»ý¤Ä¤«¤ï¤«¤é¤Ê¤¤¡£

¤³¤ÎÆó¤Ä¤ÎÍýͳ¤Ï¡¢#pragma ¤ò»È¤¨¤ÐÎɤ¤¤Î¤Ç¤Ï¤Ê¤¤¤«¤ÈÄ󰯤µ¤ì¤Æ¤¤¤ë¤Û¤È¤ó¤ÉÁ´¤Æ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÂФ·¤ÆÅ¬ÍѤµ¤ì¤ë¡£#pragma ¤Ï²¿¤ËÂФ·¤Æ»È¤Ã¤Æ¤â´ðËÜŪ¤Ë¸í¤ê¤Ê¤Î¤Ç¤¢¤ë¡£


Node:Function Prototypes, Next:, Previous:Function Attributes, Up:C Extensions

¥×¥í¥È¥¿¥¤¥×Àë¸À¤È¸Å¤¤·Á¼°¤ÎÄêµÁ

GNU C ¤Ï ANSI C ¤ò³ÈÄ¥¤·¤Æ¡¢´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤¬¤½¤Î¸å¤Ë¸½¤ì¤ë¸Å¤¤·Á¼°¤Î¡¢Èó¥×¥í¥È¥¿¥¤¥×ŪÄêµÁ¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤òµö¤·¤Æ¤¤¤ë¡£°Ê²¼¤ÎÎã¤ò¹Í¤¨¤Æ¤ß¤è¤¦¡£

/* Use prototypes unless the compiler is old-fashioned.  */
#ifdef __STDC__
#define P(x) x
#else
#define P(x) ()
#endif

/* Prototype function declaration.  */
int isroot P((uid_t));

/* Old-style function definition.  */
int
isroot (x)   /* ??? lossage here ??? */
     uid_t x;
{
  return x == 0;
}

uid_t ·¿¤¬¤¿¤Þ¤¿¤Þ short ¤Ë¤Ê¤ë¾ì¹ç¤ò¹Í¤¨¤Æ¤ß¤è¤¦¡£ANSI C ¤Ç¤Ï¤³¤ÎÎã¤Ïµö¤µ¤ì¤Ê¤¤¡£¤Ê¤¼¤Ê¤é¡¢¸Å¤¤·Á¼°¤ÎÈó¥×¥í¥È¥¿¥¤¥×Ū¤ÊÄêµÁ¤Ë¤ª¤¤¤Æ¤Ï¡¢¥ï¡¼¥É¤è¤ê¾®¤µ¤¤¥µ¥¤¥º¤Î°ú¿ô¤Ï³Ê¾å¤²¤µ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢¤³¤ÎÎã¤Ç¤Ï¡¢´Ø¿ô¤ÎÄêµÁ¤Ç¤Î°ú¿ô¤Ï¼ÂºÝ¤Ë¤Ï int ¤Ë¤Ê¤ë¤Î¤Ç¡¢°ú¿ô¤Î·¿¤¬ short ¤Ç¤¢¤ë¥×¥í¥È¥¿¥¤¥×¤È°ìÃפ·¤Ê¤¤¤Î¤Ç¤¢¤ë¡£

ANSI C ¤Î¤³¤ÎÀ©¸Â¤Ë¤è¤ê¡¢µìÍè¤Î C ¥³¥ó¥Ñ¥¤¥é¤Ç¤âưºî¤¹¤ë¥³¡¼¥É¤ò½ñ¤¯¤Î¤¬Æñ¤·¤¯¤Ê¤Ã¤Æ¤¤¤ë¡£¥×¥í¥°¥é¥Þ¤Ï¡¢uid_t ·¿¤¬¡¢short ¤Ê¤Î¤«¡¢int ¤Ê¤Î¤«¡¢¤¢¤ë¤¤¤Ï long ¤Ê¤Î¤«ÃΤé¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢GNU C ¤Ç¤Ï¤³¤¦¤¤¤¦¾ì¹ç¡¢¥×¥í¥È¥¿¥¤¥×¤Ç¸å³¤Î¸Å¤¤·Á¼°¤ÎÄêµÁ¤ò¾å½ñ¤­¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤â¤Ã¤ÈÀµ³Î¤Ë¸À¤¦¤È¡¢GNU C ¤Ç¤Ï¡¢´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×¤Î°ú¿ô·¿¤¬¡¢¸å¤Ë¸½¤ì¤ë¸Å¤¤·Á¼°¤ÎÄêµÁ¤Ç»ØÄꤵ¤ì¤ë·¿¤ò¡¢Á°¼Ô¤Î·¿¤¬³Ê¾å¤²Á°¤Î¸å¼Ô¤Î·¿¤ÈƱ¤¸¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¾å½ñ¤­¤¹¤ë¤Î¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢GNU C ¤Ç¤Ï¾å¤ÎÎã¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¤¤¿¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£

int isroot (uid_t);

int
isroot (uid_t x)
{
  return x == 0;
}

GNU C++ ¤Ç¤Ï¸Å¤¤·Á¼°¤Î´Ø¿ôÄêµÁ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¤³¤Î³ÈÄ¥¤Ï´Ø·¸¤Ê¤¤¡£


Node:C++ Comments, Next:, Previous:Function Prototypes, Up:C Extensions

C++ ·Á¼°¤Î¥³¥á¥ó¥È

GNU C ¤Ç¤Ï¡¢C++ ·Á¼°¤Î¥³¥á¥ó¥È¡¢¤¹¤Ê¤ï¤Á¡¢// ¤Ç»Ï¤Þ¤ê¡¢¹ÔËö¤Þ¤Ç¤È¤Ê¤ë¥³¥á¥ó¥È¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£Â¾¤Î¿¤¯¤Î C ¤Î¼ÂÁõ¤Ç¤â¤³¤Î¥³¥á¥ó¥È·Á¼°¤òµö¤·¤Æ¤ª¤ê¡¢¾­Íè C ¤Îµ¬³Ê¤Ë¼è¤êÆþ¤ì¤é¤ì¤½¤¦¤Ç¤¢¤ë¡£¤·¤«¤·¡¢-ansi ¤« -traditional ¤ò»ØÄꤷ¤¿¾ì¹ç¤ÏC++ ·Á¼°¤Î¥³¥á¥ó¥È¤òǧ¼±¤·¤Ê¤¤¡£¤½¤ì¤é¤Ï¡¢dividend//*comment*/divisor ¤Î¤è¤¦¤Ê¸Å¤¤·Á¤Î¹½Ê¸¤È¸ß´¹¤Ç¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£


Node:Dollar Signs, Next:, Previous:C++ Comments, Up:C Extensions

¼±ÊÌ»ÒÌ¾Ãæ¤Î¥É¥ëµ­¹æ

GNU C ¤Ç¤Ï¡¢ÉáÄÌ¡¢¥É¥ëµ­¹æ¤ò¼±ÊÌ»Ò̾¤ÎÃæ¤Ç»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤Ï¡¢Â¿¤¯¤Î¸Å¤¤ C ¤Î¼ÂÁõ¤Ç¤½¤¦¤¤¤¦¼±Ê̻Ҥòµö¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£¤·¤«¤·¡¢2,3¤Î¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç¤Ï¼±ÊÌ»Ò̾¤ÎÃæ¤Ë¥É¥ëµ­¹æ¤¬»È¤¨¤Ê¤¤¡£¤³¤ì¤Ï¡¢¤½¤Î¥¿¡¼¥²¥Ã¥È¤Î¥¢¥»¥ó¥Ö¥é¤¬¼±ÊÌ»ÒÌ¾Ãæ¤Î¥É¥ëµ­¹æ¤òµö¤·¤Æ¤¤¤Ê¤¤¤¿¤á¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¡£


Node:Character Escapes, Next:, Previous:Dollar Signs, Up:C Extensions

Äê¿ôÃæ¤Î <ESC> ʸ»ú

ʸ»úÎó¤äʸ»úÄê¿ôÃæ¤Ç¡¢Ê¸»ú¥·¡¼¥±¥ó¥¹ \e ¤ò»È¤Ã¤Æ ASCII ʸ»ú<ESC> ¤òɽ¤¹¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£


Node:Alignment, Next:, Previous:Character Escapes, Up:C Extensions

·¿¤äÊÑ¿ô¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÌ䤤¹ç¤ï¤»

¥­¡¼¥ï¡¼¥É __alignof__ ¤ò¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ»È¤¦¤È¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤òÊÖ¤·¡¢·¿¤ËÂФ·¤Æ»È¤¦¤È¤½¤Î·¿¤ÇÄ̾ïɬÍפȤµ¤ì¤ëºÇ¾®¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤òÊÖ¤¹¡£¹½Ê¸¤Ï sizeof ¤ÈƱ¤¸¤Ç¤¢¤ë¡£

Î㤨¤Ð¡¢¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤¬ double ¤ÎÃͤ¬ 8 ¥Ð¥¤¥È¶­³¦¤Ë·¤¦¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢__alignof__ (double) ¤Ï 8 ¤Ë¤Ê¤ë¡£¤³¤ì¤Ï¡¢Â¿¤¯¤Î RISC µ¡¼ï¤Ç¼ÂºÝ¤ËÀµ¤·¤¤¡£¤½¤ì¤è¤ê¤Ï¸ÅÌܤÎÀ߷פε¡¼ï¤Ç¤Ï¡¢__alignof__ (double) ¤Ï 4 ¤À¤Ã¤¿¤ê¡¢2 ¤È¤¤¤¦¤³¤È¤µ¤¨¤¢¤ë¡£

µ¡¼ï¤Ë¤è¤Ã¤Æ¤Ï¥¢¥é¥¤¥ó¥á¥ó¥È¤òÁ´¤¯É¬ÍפȤ·¤Ê¤¤¤â¤Î¤â¤¢¤ë¡£¤½¤¦¤¤¤¦µ¡¼ï¤Ç¤Ï¡¢¤É¤ó¤Ê·¿¤ËÂФ¹¤ë»²¾È¤â¡¢¤¿¤È¤¨´ñ¿ô¥¢¥É¥ì¥¹¤Ë¤¢¤Ã¤Æ¤âµö¤µ¤ì¤ë¡£¤³¤¦¤¤¤¦µ¡¼ï¤ËÂФ·¤Æ¤Ï¡¢__alignof__ ¤Ï¡¢·¿¤Î ¿ä¾© ¥¢¥é¥¤¥á¥ó¥È¤òÊó¹ð¤¹¤ë¡£

__alignof__ ¤Î¥ª¥Ú¥é¥ó¥É¤¬·¿¤Ç¤Ï¤Ê¤¯¤Æº¸ÊÕÃͤλþ¤Ï¡¢¤½¤Îº¸ÊÕÃͤ¬¼è¤ë¤³¤È¤¬ÃΤé¤ì¤Æ¤¤¤ë¤¦¤Á¤ÎºÇÂç¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤¬¡¢__alignof__ ¤ÎÃͤȤʤ롣¤³¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï¤½¤Î¥Ç¡¼¥¿·¿¼«ÂΤˤè¤ë¾ì¹ç¤â¤¢¤ë¤·¡¢¤½¤ì¤¬¹½Â¤ÂΤΰìÉô¤Ç¤¢¤ê¡¢¤½¤Î¹½Â¤ÂΤΥ¢¥é¥¤¥ó¥á¥ó¥È¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¤³¤È¤Ë¤è¤ë¾ì¹ç¤â¤¢¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤ËÀë¸À¤·¤¿¤È¤¹¤ë¡£

struct foo { int x; char y; } foo1;

__alignof__ (foo1.y) ¤ÎÃͤϤª¤½¤é¤¯ 2 ¤« 4 ¤Ë¤Ê¤ê¡¢¤½¤ì¤Ï__alignof__ (int) ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£¤³¤ì¤Ï¡¢foo1.y ¤Î¥Ç¡¼¥¿·¿¤Ï¤½¤ì¼«ÂΤϤʤó¤é¥¢¥é¥¤¥ó¥á¥ó¥È¤òÍ׵ᤷ¤Ê¤¤¤È¤·¤Æ¤â¤Ç¤¢¤ë¡£

¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ò»ØÄꤹ¤ë´ØÏ¢¤¹¤ëµ¡Ç½¤È¤·¤Æ¤Ï¡¢__attribute__ ((aligned (alignment))) ¤¬¤¢¤ë¡£¼¡¤Î¥»¥¯¥·¥ç¥ó¤ò»²¾È¤Î¤³¤È¡£


Node:Variable Attributes, Next:, Previous:Alignment, Up:C Extensions

ÊÑ¿ô¤Î°À­¤Î»ØÄê

¥­¡¼¥ï¡¼¥É __attribute__ ¤ò»È¤¦¤È¡¢ÊÑ¿ô¤ä¹½Â¤ÂΤΥե£¡¼¥ë¥É¤ÎÆÃÊ̤ʰÀ­¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¥­¡¼¥ï¡¼¥É¤Î¸å¤í¤Ë°À­¤Î»ØÄê¤òÆó½Å³ç¸Ì¤ÎÃæ¤ËÆþ¤ì¤Æ½ñ¤¯¡£¸½ºß¡¢ÊÑ¿ôÍÑ¤Ë¤Ï 8 ¸Ä¤Î°À­¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£aligned¡¢mode¡¢nocommon¡¢packed¡¢section¡¢transparent_union¡¢unused¡¢weak ¤Ç¤¢¤ë¡£¤½¤Î¾¤Ë¡¢´Ø¿ô(see Function Attributes) ¤È·¿(see Type Attributes) ¤Ç»È¤¨¤ë°À­¤¬¤¢¤ë¡£

¤Þ¤¿¡¢³Æ¥­¡¼¥ï¡¼¥É¤ÎÁ°¸å¤Ë __ ¤òÉÕ¤±¤¿Â°À­¤ò»ØÄꤷ¤Æ¤âÎɤ¤¡£¤³¤ì¤Ë¤è¤ê¡¢Æ±¤¸Ì¾Á°¤Î¥Þ¥¯¥í¤¬¤¢¤ë²ÄǽÀ­¤ò¿´ÇÛ¤¹¤ë¤³¤È¤Ê¤¯¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ç¤³¤ì¤é¤Î°À­¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£Î㤨¤Ð¡¢aligned ¤ÎÂå¤ï¤ê¤Ë __aligned__ ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

aligned (alignment)
¤³¤Î°À­¤ÏÊÑ¿ô¤ä¹½Â¤ÂΤΥե£¡¼¥ë¥É¤ÎºÇ¾®¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£Î㤨¤Ð¡¢
int x __attribute__ ((aligned (16))) = 0;

¤ÈÀë¸À¤¹¤ë¤È¡¢GCC ¤Ï¥°¥í¡¼¥Ð¥ëÊÑ¿ô x ¤ò 16 ¥Ð¥¤¥È¶­³¦¤Ë³ä¤êÅö¤Æ¤ë¡£68040 ¤Ç¤Ï¡¢¤³¤ì¤òasm ¼°¤ÈÁȤ߹ç¤ï¤»¤ë¤³¤È¤Ç¡¢¥ª¥Ú¥é¥ó¥É¤¬16¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤷤Ƥ¤¤ëɬÍפ¬¤¢¤ë move16 Ì¿Îá¤ò»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£

¤Þ¤¿¡¢¹½Â¤ÂΤΥե£¡¼¥ë¥É¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£Î㤨¤Ð¡¢Çܸ춭³¦¤ËÀ°Îó¤·¤¿ int ¤ÎÂФòºî¤ë¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ë½ñ¤±¤ÐÎɤ¤¡£

struct foo { int x[2] __attribute__ ((aligned (8))); };

¤³¤ì¤Ï¡¢double ·¿¤Î¥á¥ó¥Ð¤òÆþ¤ì¤¿¶¦ÍÑÂΤòºî¤Ã¤Æ¡¢¤½¤Î¶¦ÍÑÂΤòÇܸ춭³¦¤ËÀ°Î󤵤»¤ë¤È¤¤¤¦Ä̾ï¤Î¼êÃʤÎÂåÂØÊýË¡¤Ç¤¢¤ë¡£

´Ø¿ô¤ËÂФ·¤Æ¤Ï¥¢¥é¥¤¥ó¥á¥ó¥È¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£´Ø¿ô¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ïµ¡¼ï¤Ë¤è¤Ã¤Æ·è¤Þ¤Ã¤Æ¤ª¤ê¡¢Êѹ¹ÉÔ²Äǽ¤Ç¤¢¤ë¡£typedef ̾¤ËÂФ·¤Æ¤â¥¢¥é¥¤¥ó¥á¥ó¥È¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£typedef ̾¤Ï¿·¤¿¤Ê·¿¤Ç¤Ï¤Ê¤¯¤Æ¡¢Ã±¤Ê¤ëÊÌ̾¤Ë²á¤®¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

¾å¤ÎÎã¤Î¤è¤¦¤Ë¡¢Í¿¤¨¤é¤ì¤¿ÊÑ¿ô¤ä¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É¤ËÂФ·¤Æ GCC ¤Ë»È¤Ã¤ÆÍߤ·¤¤¤È»×¤¦¥¢¥é¥¤¥ó¥á¥ó¥È¤òÌÀ¼¨Åª¤Ë»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£¤â¤¦°ì¤Ä¤ÎÊýË¡¤È¤·¤Æ¡¢¥¢¥é¥¤¥ó¥á¥ó¥È°ø»Ò¤ò½ñ¤«¤º¤Ë¡¢¥³¥ó¥Ñ¥¤¥ë¤Î¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Î°ÕÌ£¤Î¤¢¤ëºÇÂç¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤òÊÑ¿ô¤ä¥Õ¥£¡¼¥ë¥É¤ËÍ¿¤¨¤ë¤è¤¦¥³¥ó¥Ñ¥¤¥é¤ËǤ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£

short array[3] __attribute__ ((aligned));

aligned °À­¤Î»ØÄê¤Ç¡¢¥¢¥é¥¤¥ó¥á¥ó¥È°ø»Ò¤ò½ñ¤«¤Ê¤¤¤È¡¢GCC ¤Ï¡¢Àë¸À¤µ¤ì¤¿ÊÑ¿ô¤ä¥Õ¥£¡¼¥ë¥É¤Ë¡¢ÆÉ¼Ô¤Î¥³¥ó¥Ñ¥¤¥ë¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤¢¤ëµ¡¼ï¤ÇǤ°Õ¤Î¥Ç¡¼¥¿·¿¤ËÂФ·¤Æ»È¤ï¤ì¤ëºÇÂç¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ò¼«Æ°Åª¤ËÀßÄꤹ¤ë¡£¤³¤¦¤¹¤ë¤È¡¢¥³¥Ô¡¼Áàºî¤Î¸úΨ¤¬Îɤ¯¤Ê¤ë¤³¤È¤¬Â¿¤¤¡£GCC ¤Ï¡¢¤³¤Î¤è¤¦¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤òÀßÄꤷ¤¿ÊÑ¿ô¤ä¥Õ¥£¡¼¥ë¥É¤È¤Î´Ö¤Î¥³¥Ô¡¼¤ò¹Ô¤¦¤È¤­¤Ë¡¢ºÇÂç¤Î¥á¥â¥ê¤Î²ô¤ò¥³¥Ô¡¼¤¹¤ëÌ¿Îá¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤«¤é¤Ç¤¢¤ë¡£

aligned °À­¤¬¤Ç¤­¤ë¤Î¤Ï¥¢¥é¥¤¥ó¥á¥ó¥È¤òÂ礭¤¯¤¹¤ë¤³¤È¤À¤±¤Ç¤¢¤ë¡£¤À¤¬¡¢¾®¤µ¤¯¤¹¤ë¤Ë¤Ï packed °À­¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¡£

aligned °À­¤Î¸ú²Ì¤Ï¡¢¥ê¥ó¥«¤Î»ý¤ÄÀ©¸Â¤Ë¤è¤êÀ©¸Â¤ò¼õ¤±¤ë²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤ÆÍߤ·¤¤¡£Â¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥ê¥ó¥«¤Ï¡¢ÊÑ¿ô¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ò¡¢¤¢¤ë·è¤Þ¤Ã¤¿ºÇÂç¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Þ¤Ç¤·¤«Ä´À°¤Ç¤­¤Ê¤¤¡£(¥ê¥ó¥«¤ÎÃæ¤Ë¤Ï¡¢²Äǽ¤Ê¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎºÇÂçÃͤ¬Èó¾ï¤Ë¾®¤µ¤¤¤â¤Î¤¬¤¢¤ë¡£) ÆÉ¼Ô¤Î¤È¤³¤í¤Î¥ê¥ó¥«¤¬¡¢ÊÑ¿ô¤òºÇÂç¤Ç 8 ¥Ð¥¤¥È¶­³¦¤Ë¤Þ¤Ç¤·¤«À°Îó¤Ç¤­¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢__attribute__ ¤Ç aligned(16) ¤È»ØÄꤷ¤Æ¤â¡¢8 ¥Ð¥¤¥È¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤·¤«Ä󶡤µ¤ì¤Ê¤¤¡£¾ÜºÙ¤Ê¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¥ê¥ó¥«¤Î¥É¥­¥å¥á¥ó¥È¤ò¸«¤ÆÍߤ·¤¤¡£

mode (mode)
¤³¤Î°À­¤Ï¡¢Àë¸À¤ËÂФ¹¤ë¥Ç¡¼¥¿·¿¤ò»ØÄꤹ¤ë¡£¤³¤Î·¿¤Ï¥â¡¼¥É mode ¤ËÂбþ¤¹¤ë¤É¤ó¤Ê·¿¤Ç¤âÎɤ¤¡£¤³¤ì¤Ï¼Â¼ÁŪ¤Ë¤Ï¡¢¤½¤ÎÉý¤ËÂбþ¤·¤¿À°¿ô·¿¤«ÉâÆ°¾®¿ôÅÀ·¿¤òÍ׵ᤷ¤¿¤³¤È¤Ë¤Ê¤ë¡£

¤Þ¤¿¡¢¥â¡¼¥É byte ¤Þ¤¿¤Ï __byte__ ¤ò»ØÄꤷ¤Æ¡¢°ì¥Ð¥¤¥ÈÀ°¿ô¤ËÂбþ¤¹¤ë¥â¡¼¥É¤Ç¤¢¤ë¤³¤È¤ò»Ø¼¨¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£Æ±Íͤˡ¢word ¤Þ¤¿¤Ï __word__ ¤Ç°ì¸ìŤÎÀ°¿ô¥â¡¼¥É¤ò¡¢pointer ¤Þ¤¿¤Ï __pointer__ ¤Ç¥Ý¥¤¥ó¥¿¤òɽ¸½¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¥â¡¼¥É¤ò»Ø¼¨¤¹¤ë¡£

nocommon
¤³¤Î°À­¤Ï¡¢GNU CC ¤ËÂФ·¡¢ÊÑ¿ô¤ò¥³¥â¥óÎΰè¤ËÃÖ¤«¤º¤Ë¡¢Ä¾ÀÜ¥á¥â¥ê³äÅö¤ò¹Ô¤Ê¤¦¤è¤¦Í׵᤹¤ë¡£¥ª¥×¥·¥ç¥ó -fno-common ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢Á´¤Æ¤ÎÊÑ¿ô¤ËÂФ·¤³¤ì¤ò¹Ô¤Ê¤¦¡£

ÊÑ¿ô¤ËÂФ· nocommon °À­¤ò»ØÄꤹ¤ë¤È¡¢¥¼¥í¤Ë¤è¤ë½é´ü²½¤¬¹Ô¤Ê¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£¤¢¤ëÊÑ¿ô¤Ï¡¢°ì¸Ä¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¤·¤«½é´ü²½¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£

packed
packed °À­¤Ï¡¢ÊÑ¿ô¤ä¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É¤¬»ý¤Ä¥¢¥é¥¤¥ó¥á¥ó¥È¤òºÇ¾®¸Â¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£ºÇ¾®¸Â¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤È¤Ï¡¢aligned °À­¤Ç¤â¤Ã¤ÈÂ礭¤ÊÃͤò»ØÄꤷ¤Ê¤¤¸Â¤ê¡¢ÊÑ¿ô¤Î¾ì¹ç¤Ï1¥Ð¥¤¥È¤Ç¤¢¤ê¡¢¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É¤Î¾ì¹ç¤Ï 1 ¥Ó¥Ã¥È¤Ç¤¢¤ë¡£

°Ê²¼¤Î¹½Â¤ÂΤǤϡ¢¥Õ¥£¡¼¥ë¥É x ¤¬¥Ñ¥Ã¥¯¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤Î¤¿¤á a ¤Îľ¸å¤ËÇÛÃÖ¤µ¤ì¤ë¡£

struct foo
{
  char a;
  int x[2] __attribute__ ((packed));
};

section ("section-name")
Ä̾GNU CC ¤ÏÀ¸À®¤·¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ò data ¤ä bss ¤È¤¤¤Ã¤¿¥»¥¯¥·¥ç¥ó¤ËÃÖ¤¯¡£¤À¤¬¡¢ÄɲäÇÊ̤Υ»¥¯¥·¥ç¥ó¤¬É¬Íפˤʤ俤ꡢ¤¢¤ë¤¤¤Ï¤¢¤ë¼ï¤ÎÆÃÊ̤ÊÊÑ¿ô¤òÆÃÊ̤ʥ»¥¯¥·¥ç¥ó¤ËÃÖ¤¯É¬Íפ¬¤¢¤Ã¤¿¤ê¤¹¤ë¤³¤È¤¬¤¢¤ë¡£¤³¤ì¤Ï¡¢Î㤨¤ÐÆÃÊ̤ʥϡ¼¥É¥¦¥§¥¢¤Ë¥Þ¥Ã¥×¤¹¤ë¤¿¤áÅù¤ÎÍýͳ¤ÇɬÍפˤʤ롣section °À­¤Ï¡¢ÊÑ¿ô(¤Þ¤¿¤Ï´Ø¿ô)¤ò¤¢¤ëÆÃÄê¤Î¥»¥¯¥·¥ç¥ó¤ËÃÖ¤¯¤³¤È¤ò»ØÄꤹ¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¿§¡¹¤Ê¸ÇÍ­¤Î¥»¥¯¥·¥ç¥ó̾¤ò»È¤Ã¤Æ¤¤¤ë¡£
struct duart a __attribute__ ((section ("DUART_A"))) = { 0 };
struct duart b __attribute__ ((section ("DUART_B"))) = { 0 };
char stack[10000] __attribute__ ((section ("STACK"))) = { 0 };
int init_data __attribute__ ((section ("INITDATA"))) = 0;

main()
{
  /* Initialize stack pointer */
  init_sp (stack + sizeof (stack));

  /* Initialize initialized data */
  memcpy (&init_data, &data, &edata - &data);

  /* Turn on the serial ports */
  init_duart (&a);
  init_duart (&b);
}

section °À­¤Ï¡¢¾åµ­¤ÎÎã¤Î¤è¤¦¤Ë¡¢¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Î½é´üÃÍÉÕ¤­ÄêµÁ¤Ë»È¤¦¤³¤È¡£GNU CC ¤Ï¡¢½é´üÃͤʤ·¤ÎÊÑ¿ôÀë¸À¤Ësection °À­¤ò»È¤¦¤È¡¢·Ù¹ð¤òȯ¤¹¤ë¤«¡¢¤µ¤â¤Ê¤±¤ì¤Ð̵»ë¤¹¤ë¡£

section °À­¤Ï¡¢¥ê¥ó¥«¤Îưºî¤¹¤ë»ÅÁȤߤˤè¤ê¡¢´°Á´¤Ë½é´ü²½¤µ¤ì¤¿¥°¥í¡¼¥Ð¥ë¤ÊÄêµÁ¤Ë¤·¤«»È¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¥ê¥ó¥«¤Ï³Æ¥ª¥Ö¥¸¥§¥¯¥È¤Ï°ì²ó¤À¤±ÄêµÁ¤µ¤ì¤ë¤³¤È¤òÍ׵᤹¤ë¡£Îã³°¤Ï¡¢Èó½é´ü²½ÊÑ¿ô¤Ç¤¢¤ê¡¢°ì»þŪ¤Ë common (¤¢¤ë¤¤¤Ïbss) ¥»¥¯¥·¥ç¥ó¤ËÃÖ¤«¤ì¡¢¤³¤Î¤¿¤áÊ£¿ô²ó¡ÖÄêµÁ¡×²Äǽ¤Ç¤¢¤ë¡£ÊÑ¿ô¤ò¶¯À©Åª¤Ë½é´ü²½¤¹¤ë¤Ë¤Ï¡¢-fno-common ¥ª¥×¥·¥ç¥ó¤«nocommon °À­¤ò»È¤¦¤³¤È¤¬½ÐÍè¤ë¡£

¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë·Á¼°¤ÎÃæ¤Ë¤Ï¡¢Ç¤°Õ¤Î¥»¥¯¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤¤â¤Î¤¬¤¢¤ê¡¢¤½¤Î¤¿¤á section °À­¤ÏÁ´¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤ÇÍøÍѤǤ­¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£¤¢¤ë¥â¥¸¥å¡¼¥ë¤ÎÁ´ÆâÍÆ¤ò¤¢¤ëÆÃÄê¤Î¥»¥¯¥·¥ç¥ó¤ËÂбþ¤µ¤»¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢Âå¤ï¤ê¤Ë¥ê¥ó¥«¤Îµ¡Ç½¤ò»È¤¦¤³¤È¤ò¹Í¤¨¤¿¤Û¤¦¤¬Îɤ¤¡£

transparent_union
¤³¤Î°À­¤Ï¡¢¶¦ÍÑÂΤǤ¢¤ë´Ø¿ô¤Î²¾°ú¿ô¤ËÉÕ¤±¡¢Âбþ¤¹¤ë¼Â°ú¿ô¤Î·¿¤Ï¤½¤Î¶¦ÍÑÂΤΤɤΥá¥ó¥Ð¤Î·¿¤Ç¤¢¤Ã¤Æ¤âÎɤ¤¤¬¡¢¼Â°ú¿ô¤Ï¶¦ÍÑÂΤÎÀèÆ¬¤Î¥á¥ó¥Ð¤Î·¿¤È¤·¤ÆÅϤµ¤ì¤ë¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£¾ÜºÙ¤Ï See Type Attributes ¤ò»²¾È¡£¤Þ¤¿¡¢¤³¤Î°À­¤ò¶¦ÍÑÂΥǡ¼¥¿·¿¤Îtypedef ¤Ë»È¤¦¤³¤È¤â¤Ç¤­¤ë¡£¤½¤Î¾ì¹ç¡¢¤³¤Î·¿¤ò»ý¤ÄÁ´¤Æ¤Î´Ø¿ô²¾°ú¿ô¤ËŬÍѤµ¤ì¤ë¡£
unused
¤³¤Î°À­¤Ï¡¢ÊÑ¿ô¤ËÉÕ¤±¡¢¤³¤ÎÊÑ¿ô¤¬»ÈÍѤµ¤ì¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£GNU CC ¤Ï¡¢¤³¤ÎÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Ï·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¡£
weak
weak °À­¤Ï¡¢See Function Attributes ¤ÇÀâÌÀ¤¹¤ë¡£
model (model-name)
M32R/D ¤Ç¤Ï¤³¤Î°À­¤ò»È¤Ã¤Æ¡¢¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹²ÄǽÀ­¤òÀßÄꤹ¤ë¡£¼±ÊÌ»Ò model-name ¤Ï¡¢small¡¢medium¡¢large ¤Î°ì¤Ä¤Ç¡¢¤½¤ì¤¾¤ì¥³¡¼¥É¥â¥Ç¥ë¤òɽ¤¹¡£

small ¥â¥Ç¥ë¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥á¥â¥ê¤Î²¼°Ì 16MB ¤ËÃÖ¤«¤ì¤ë(¤³¤ì¤Ë¤è¤ê¡¢¤³¤ì¤é¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤Ï ld24 Ì¿Îá¤Ç¥í¡¼¥É²Äǽ¤Ç¤¢¤ë¡£)

medium ¥â¥Ç¥ë¤È large ¥â¥Ç¥ë¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï 32 ¥Ó¥Ã¥È¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î¤É¤³¤Ë¤Ç¤âÃÖ¤«¤ì¤ë(GNU CC ¤Ï¤³¤ì¤é¤Î¥¢¥É¥ì¥¹¤ò¥í¡¼¥É¤¹¤ë¤¿¤á¤Ë¡¢seth/add3 Ì¿Îá¤òÀ¸À®¤¹¤ë)¡£

Ê£¿ô¤Î°À­¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢¤½¤ì¤é¤òÆó½Å³ç¸Ì¤Ç°Ï¤ß¡¢¤½¤ÎÃæ¤Ç¥«¥ó¥Þ¤Ç³ÆÂ°À­¤ò¶èÀڤ롣Î㤨¤Ð¡¢__attribute__ ((aligned (16), packed)) ¤È¤¹¤ë¡£


Node:Type Attributes, Next:, Previous:Variable Attributes, Up:C Extensions

·¿¤Î°À­¤Î»ØÄê

¥­¡¼¥ï¡¼¥É __attribute__ ¤ò»È¤¦¤È¡¢struct ·¿¤äunion ·¿¤òÄêµÁ¤¹¤ë¤È¤­¤Ë¡¢ÆÃÊ̤ʰÀ­¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤Î¥­¡¼¥ï¡¼¥É¤Î¸å¤í¤Ë¡¢Â°À­¤Î»ØÄê¤òÆó½Å³ç¸Ì¤ËÆþ¤ì¤ÆÂ³¤±¤Æ¤ª¤¯¡£·¿¤òÄêµÁ¤¹¤ëºÝ¤Î°À­¤È¤·¤Æ¤Ï¡¢¸½ºß»°¤ÄÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£aligned¡¢packed¡¢transparent_union ¤Ç¤¢¤ë¡£¤³¤ì°Ê³°¤Î°À­¤¬¡¢´Ø¿ô(see Function Attributes)¤äÊÑ¿ô(see Variable Attributes)ÍѤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£

¤³¤ì¤é¤Î¤¦¤Á¤Î°À­¤Ï¡¢¥­¡¼¥ï¡¼¥É¤ÎÁ°¸å¤Ë __ ¤òÉղ䷤ƻØÄꤷ¤Æ¤âÎɤ¤¡£¤³¤Á¤é¤ò»È¤¦¤È¡¢Æ±¤¸Ì¾Á°¤Î¥Þ¥¯¥í¤¬¤¢¤ë¤«¤É¤¦¤«¤òµ¤¤Ë¤»¤º¤Ë¥Ø¥Ã¥À¥Õ¥£¥¢¥ë¤ÎÃæ¤Ç»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£Î㤨¤Ð¡¢aligned ¤ÎÂå¤ï¤ê¤Ë __aligned__ ¤ò»È¤Ã¤Æ¤âÎɤ¤¡£

°À­ aligned ¤È transparent_union ¤Ï¡¢typedef Àë¸À¤ÎÃæ¤«¡¢´°Á´¤Ê enum¡¢struct¡¢union ·¿¤ÎÄêµÁ ¤ÎÊĤ¸Ãæ³ç¸Ì¤Îľ¸å¤ËÃÖ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£Â°À­ packed ¤Ï¡¢ÄêµÁ¤ÎÊĤ¸Ãæ³ç¸Ì¤Îľ¸å¤Ë¤À¤±ÃÖ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£

¤Þ¤¿¡¢Â°À­¤ò¡¢ÊĤ¸³ç¸Ì¤Î¸å¤í¤Ç¤Ï¤Ê¤¯¤Æ¡¢enum¡¢struct¡¢union ¥¿¥°¤È¤½¤Î·¿Ì¾¤Î´Ö¤ËÃÖ¤¯¤³¤È¤â¤Ç¤­¤ë¡£

aligned (alignment)
¤³¤Î°À­¤Ï¡¢»ØÄꤵ¤ì¤¿·¿¤ÎÊÑ¿ô¤ËÂФ·¡¢ºÇ¾®¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ò¥Ð¥¤¥È¿ô¤Ç»ØÄꤹ¤ë¡£Î㤨¤Ð¡¢
struct S { short f[3]; } __attribute__ ((aligned (8)));
typedef int more_aligned_int __attribute__ ((aligned (8)));

¤ÈÀë¸À¤¹¤ë¤È¡¢struct S ·¿¤ä more_aligned_int ·¿¤ÎÊÑ¿ô¤¬¤½¤ì¤¾¤ì¡¢¾¯¤Ê¤¯¤È¤â 8 ¥Ð¥¤¥È¶­³¦¤Ë³ä¤êÅö¤Æ¤é¤ì¡¢À°Î󤵤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¡£SPARC ¤Ç¤Ï¡¢struct S ·¿¤ÎÊÑ¿ô¤òÁ´¤Æ8 ¥Ð¥¤¥È¶­³¦¤ËÀ°Î󤹤ë¤È¡¢GNU CC ¤¬ ldd Ì¿Îá¤È std Ì¿Îá(Çܸì¥í¡¼¥É¤ÈÇܸ쥹¥È¥¢)¤ò struct S ·¿¤Î°ì¤Ä¤ÎÊÑ¿ô¤òƱ¤¸·¿¤ÎÊÑ¿ô¤Ë¥³¥Ô¡¼¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¡¢¤½¤Î¤¿¤á¼Â¹Ô»þ¤Î¸úΨ¤¬²þÁ±¤µ¤ì¤ë¡£

Ǥ°Õ¤ÎÍ¿¤¨¤é¤ì¤¿ struct ·¿¤ä union ·¿¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ÏANSI C µ¬³Ê¤Ë¤è¤ê¡¢¾¯¤Ê¤¯¤È¤â¡¢ÌäÂê¤Î struct ¤ä union ¤ÎÁ´¤Æ¤Î¥á¥ó¥Ð¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎºÇ¾®¸øÇÜ¿ô¤ÎÇÜ¿ô¤Ë¤Ê¤ë¤³¤È¤¬Í׵ᤵ¤ì¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤ÆÍߤ·¤¤¡£¤³¤Î¤¿¤á¡¢struct ¤ä union ·¿¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤òÄ´À°¤¹¤ë¤Î¤Ë¡¢¤½¤Î¥á¥ó¥Ð¤Î¤É¤ì¤«°ì¤Ä¤Ë alignment ¤ò°À­¤òÉղ乤뤳¤È¤Ç¡¢¼Â¼ÁŪ¤Ë¹Ô¤Ê¤¨¤ë¤³¤È¤Ë¤Ê¤ë¡£¤À¤¬¡¢¾å¤ÎÎã¤ÇÀâÌÀ¤·¤¿½ñ¤­Êý¤ÎÊý¤¬¡¢struct ·¿¤ä union ·¿Á´ÂΤΥ¢¥é¥¤¥ó¥á¥ó¥È¤òÄ´À°¤¹¤ë¤¿¤á¤Î»ØÄê¤È¤·¤Æ¤Ï¡¢¤è¤êÌÀÇò¤Ç¡¢È½¤ê¤ä¤¹¤¯¡¢ÆÉ¤ß¤ä¤¹¤¤ÊýË¡¤È¸À¤¨¤ë¡£

Á°½Ð¤ÎÎã¤Î¤è¤¦¤Ë¡¢Í¿¤¨¤é¤ì¤¿ struct ·¿¤ä union ·¿¤ËÂФ·¤Æ»È¤Ã¤ÆÍߤ·¤¤¥¢¥é¥¤¥ó¥á¥ó¥È¤ò¥Ð¥¤¥Èñ°Ì¤ÇÌÀ¼¨Åª¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£Ê̤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢¥¢¥é¥¤¥ó¥á¥ó¥È°ø»Ò¤ò½ñ¤«¤º¤Ë¡¢¥³¥ó¥Ñ¥¤¥ë¤Î¥¿¡¼¥²¥Ã¥Èµ¡¼ï¤Ç°ÕÌ£¤Î¤¢¤ëºÇÂç¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ò¤½¤Î·¿¤Ë»ØÄꤵ¤»¤ë¤Î¤ò¡¢GNU CC ¤ËǤ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¤âÎɤ¤¡£

struct S { short f[3]; } __attribute__ ((aligned));

aligned °À­¤Î»ØÄê¤Ç¡¢¥¢¥é¥¤¥ó¥á¥ó¥È°ø»Ò¤ò½ñ¤«¤Ê¤¤¤È¡¢GCC ¤Ï¡¢¤½¤Î·¿¤Ë¡¢ÆÉ¼Ô¤Î¥³¥ó¥Ñ¥¤¥ë¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤¢¤ëµ¡¼ï¤ÇǤ°Õ¤Î¥Ç¡¼¥¿·¿¤ËÂФ·¤Æ»È¤ï¤ì¤ëºÇÂç¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ò¼«Æ°Åª¤ËÀßÄꤹ¤ë¡£¤³¤¦¤¹¤ë¤È¡¢¥³¥Ô¡¼Áàºî¤Î¸úΨ¤¬Îɤ¯¤Ê¤ë¤³¤È¤¬Â¿¤¤¡£GCC ¤Ï¡¢¤³¤Î¤è¤¦¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤òÀßÄꤷ¤¿ÊÑ¿ô¤ä¥Õ¥£¡¼¥ë¥É¤È¤Î´Ö¤Î¥³¥Ô¡¼¤ò¹Ô¤¦¤È¤­¤Ë¡¢ºÇÂç¤Î¥á¥â¥ê¤Î²ô¤ò¥³¥Ô¡¼¤¹¤ëÌ¿Îá¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤«¤é¤Ç¤¢¤ë¡£

¾å¤ÎÎã¤Ç¡¢short ¤ÎÂ礭¤µ¤¬¤É¤ì¤â 2 ¥Ð¥¤¥È¤Ç¤¢¤ì¤Ð¡¢struct S ·¿Á´ÂΤÎÂ礭¤µ¤Ï 6 ¥Ð¥¤¥È¤Ë¤Ê¤ë¡£¤³¤ÎÂ礭¤µ°Ê¾å¤Ç¡¢ºÇ¾®¤Î 2 ¤ÎÑѾè¤Ï 8 ¤Ê¤Î¤Ç¡¢GCC ¤Ï struct S ·¿Á´ÂΤΥ¢¥é¥¤¥ó¥á¥ó¥È¤ò 8 ¥Ð¥¤¥È¤ËÀßÄꤹ¤ë¡£

Í¿¤¨¤é¤ì¤¿·¿¤ËÂФ·»þ´Ö¸úΨ¤ÎÎɤ¤¥¢¥é¥¤¥ó¥á¥ó¥È¤òÁªÂò¤¹¤ë¤è¤¦¤ËGCC ¤ËÍ׵ᤷ¡¢¤½¤Î·¿¤ÎñÆÈ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤À¤±¤ò¸Ä¡¹¤ËÀë¸À¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¤¬¡¢GCC ¤Î»þ´ÖÍ¥À襢¥é¥¤¥ó¥á¥ó¥È¤òÁªÂò¤¹¤ëǽÎϤϡ¢¼ç¤ËŬÀÚ¤Ê(¸úΨÎɤ¯À°Î󤹤ë)·¿¤ò»ý¤ÄÊÑ¿ô¤ÎÇÛÎó¤òºî¤í¤¦¤È¤·¤Æ¤¤¤ë»þ¤Ë¤·¤«Ìò¤ËΩ¤¿¤Ê¤¤¡£¸úΨÎɤ¯À°Î󤵤ì¤ë·¿¤ÎÊÑ¿ô¤ÎÇÛÎó¤òÀë¸À¤·¤¿¤ê¡¢»È¤¦»þ¤Ï¡¢ÆÉ¼Ô¤Î¥×¥í¥°¥é¥à¤Ï´ØÏ¢¤¹¤ë·¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤ËÂФ¹¤ë¥Ý¥¤¥ó¥¿»»½Ñ±é»»(¤¢¤ë¤¤¤ÏƱ¤¸¤³¤È¤À¤¬Åº¤¨»ú¤Ë¤è¤ë»²¾È) ¤â¹Ô¤ï¤ì¤ë¤À¤í¤¦¡£¤³¤ì¤é¤Î¥Ý¥¤¥ó¥¿»»½Ñ±é»»¤ËÂФ·¤Æ GCC ¤¬À¸À®¤¹¤ë¥³¡¼¥É¤Ï¡¢¸úΨÎɤ¯À°Î󤵤ì¤ë·¿¤ËÂФ¹¤ë¤â¤Î¤Î¤Û¤¦¤¬¡¢Â¾¤Î·¿¤ËÂФ¹¤ë¤â¤Î¤è¤ê¸úΨ¤¬Îɤ¯¤Ê¤ë¡£

°À­ aligned ¤Ï¥¢¥é¥¤¥ó¥á¥ó¥È¤òÁý²Ã¤µ¤»¤ë¤À¤±¤À¤¬¡¢packed ¤ò»ØÄꤹ¤ì¤Ð¸º¾¯¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£°Ê²¼¤ò»²¾È¡£

aligned °À­¤Î¸ú²Ì¤Ï¡¢¥ê¥ó¥«¤Î»ý¤ÄÀ©¸Â¤Ë¤è¤ê¸ÂÄꤵ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤Û¤·¤¤¡£Â¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¥ê¥ó¥«¤Ï¤¢¤ë·è¤Þ¤Ã¤¿ºÇÂç¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ËÊÑ¿ô¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤òÀÚ¤ê¾å¤²¤ë¤è¤¦Ä´À°¤¹¤ë¤³¤È¤·¤«¤Ç¤­¤Ê¤¤¡£(¥ê¥ó¥«¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤Î¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ëºÇÂç¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Èó¾ï¤Ë¾®¤µ¤¤¤³¤È¤â¤¢¤ë¡£) ÆÉ¼Ô¤Î¤È¤³¤í¤Î¥ê¥ó¥«¤¬¡¢ºÇÂç 8 ¥Ð¥¤¥È¤Þ¤Ç¤·¤«ÊÑ¿ô¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ò¼è¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢__attribute__ ¤Çaligned(16) ¤ò»ØÄꤷ¤Æ¤â¡¢8 ¥Ð¥¤¥È¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤·¤«¼è¤ì¤Ê¤¤¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤ÏÆÉ¼Ô¤Î¤È¤³¤í¤Î¥ê¥ó¥«¤Î¥É¥­¥å¥á¥ó¥È¤ò¸«¤ÆÍߤ·¤¤¡£

packed
¤³¤Î°À­¤Ï¡¢enum ·¿¡¢struct ·¿¡¢union ·¿¤ÎÄêµÁ¤ËÉÕ¤±¤Æ¡¢¤½¤Î·¿¤òɽ¸½¤¹¤ë¤Î¤ËºÇÄã¸ÂɬÍפʥá¥â¥ê¤ò»ØÄꤹ¤ë¡£

¤³¤Î°À­¤ò struct ·¿¤È union ·¿¤Ë»ØÄꤹ¤ë¤Î¤Ï¡¢¤½¤Î¹½Â¤ÂΤ䶦ÍÑÂΤΥá¥ó¥Ð¤Î¤½¤ì¤¾¤ì¤Ë packed °À­¤ò»ØÄꤹ¤ë¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£¥³¥Þ¥ó¥É¹Ô¤Ç -fshort-enums ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤Î¤Ï¡¢Á´¤Æ¤Î enum ·¿¤ÎÄêµÁ¤Ë packed °À­¤ò»ØÄꤹ¤ë¤ÈƱ¤¸¤Ç¤¢¤ë¡£

¤³¤Î°À­¤Ï enum ¤ÎÄêµÁ¤ÎÊĤ¸Ãæ³ç¸Ì¤Î¸å¤Ë¤·¤«»ØÄê¤Ç¤­¤Ê¤¤¡£typedef ¤ÎÃæ¤Ç¤Ï¡¢¤½¤ÎÃæ¤Ë enum ¤ÎÄêµÁ¤â´Þ¤ó¤Ç¤¤¤Ê¤¤¸Â¤ê¡¢»ØÄê¤Ç¤­¤Ê¤¤¡£

transparent_union
¤³¤Î°À­¤ò union ·¿¤ÎÄêµÁ¤ËÉÕ¤±¤ë¤È¡¢¤½¤Î¶¦ÍÑÂη¿¤ò»ý¤Ä´Ø¿ô¤Î¥Ñ¥é¥á¡¼¥¿¤¬¤¢¤ë¾ì¹ç¡¢¤½¤Î´Ø¿ô¤Ø¤Î¸Æ½Ð¤·¤¬ÆÃÊ̤ÊÊýË¡¤Ç¼è¤ê°·¤ï¤ì¤ë¡£

Âè°ì¤Ë¡¢¤¢¤ëÆ©²á¶¦ÍÑÂη¿¤ËÂбþ¤¹¤ë°ú¿ô¤Ï¡¢¤½¤Î¶¦ÍÑÂΤΥá¥ó¥Ð¤Î¤¦¤Á¤Î¤É¤Î·¿¤Ë¤Ç¤â¤Ê¤ê¤¦¤ë¡£¤³¤Î¾ì¹ç¡¢¥­¥ã¥¹¥È¤ÏÉÔÍפǤ¢¤ë¡£¤Þ¤¿¡¢¶¦ÍÑÂΤ¬¥Ý¥¤¥ó¥¿·¿¤ò´Þ¤ó¤Ç¤¤¤ì¤Ð¡¢Âбþ¤¹¤ë°ú¿ô¤Ï¥Ì¥ë¥Ý¥¤¥ó¥¿Äê¿ô¤« void ¥Ý¥¤¥ó¥¿¼°¤Ë¤Ê¤ê¤¦¤ë¡£¶¦ÍÑÂΤ¬¡¢void ¥Ý¥¤¥ó¥¿·¿¤ò´Þ¤ó¤Ç¤¤¤ì¤Ð¡¢Âбþ¤¹¤ë°ú¿ô¤ÏǤ°Õ¤Î¥Ý¥¤¥ó¥¿¼°¤Ë¤Ê¤ê¤¦¤ë¡£¶¦ÍÑÂΤΥá¥ó¥Ð¤Î·¿¤¬¥Ý¥¤¥ó¥¿¤Ç¤¢¤ì¤Ð¡¢¤½¤ì¤¬»²¾È¤·¤Æ¤¤¤ë·¿¤Ë¤Ä¤¤¤Æ¤Î const ¤Î¤è¤¦¤Ê½¤¾þ»Ò¤Ï¡¢Êݸ¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤ì¤ÏÉáÄ̤Υݥ¤¥ó¥¿¤ÎÊÑ´¹¤ÈƱ¤¸¤Ç¤¢¤ë¡£

ÂèÆó¤Ë¡¢¤½¤Î°ú¿ô¤Ï¡¢Æ©²á¶¦ÍÑÂμ«¿È¤Î¸Æ½Ð¤·µ¬Ìó¤Ç¤Ï¤Ê¤¯¤Æ¡¢¶¦ÍÑÂΤÎÀèÆ¬¤Î¥á¥ó¥Ð¤Î¸Æ½Ð¤·µ¬Ìó¤ò»È¤Ã¤Æ´Ø¿ô¤ËÅϤµ¤ì¤ë¡£¤½¤Î¶¦ÍÑÂΤΥá¥ó¥Ð¤ÏÁ´¤ÆÆ±¤¸¥Þ¥·¥óɽ¸½¤Ë¤Ê¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤ì¤Ï¡¢¤³¤Î°ú¿ô¤òÀµ¤·¤¯ÅϤ¹¤¿¤á¤ËɬÍפǤ¢¤ë¡£

Æ©²á¶¦ÍÑÂΤϡ¢¸ß´¹À­¤ÎÍýͳ¤Ë¤è¤êÊ£¿ô¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ý¤Ä¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î¤¿¤á¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¡£Î㤨¤Ð¡¢´Ø¿ô wait ¤Ï¡¢Posix ¤Ë½àµò¤¹¤ë¤¿¤á¤Ë¤Ï int * ·¿¤ÎÃͤò¼õ¤±ÉÕ¤±¤ë¤«¡¢4.1BSD ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë½àµò¤¹¤ë¤¿¤á¤Ë¤Ï union wait * ·¿¤ÎÃͤò¼õ¤±ÉÕ¤±¤ë¤«¤Î¤É¤Á¤é¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£wait ¤Î²¾°ú¿ô¤¬void * ¤Ç¤¢¤ì¤Ð¡¢wait ¤Ï¤É¤Á¤é¤Î¼ïÎà¤Î°ú¿ô¤Ç¤â¼õÉÕ²Äǽ¤Ë¤Ê¤ë¤¬¡¢Â¾¤Î¤É¤ó¤Ê¥Ý¥¤¥ó¥¿·¿¤Ç¤â¼õ¤±ÉÕ¤±¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¡¢°ú¿ô·¿¤Î¸¡ºº¤¬Ìò¤ËΩ¤¿¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£Âå¤ï¤ê¤Ë¡¢<sys/wait.h> ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄêµÁ¤·¤Æ¤âÎɤ¤¡£

typedef union
  {
    int *__ip;
    union wait *__up;
  } wait_status_ptr_t __attribute__ ((__transparent_union__));

pid_t wait (wait_status_ptr_t);

¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤Ï¡¢int * ·¿¤« union wait * ·¿¤Î°ú¿ô¤òÅϤ¹¤³¤È¤¬¤Ç¤­¤ë¡£¸Æ½Ð¤·µ¬Ìó¤Ï int * ¤ò»È¤¦¡£¥×¥í¥°¥é¥à¤Ç¤Ï¡¢¤É¤Á¤«¤Î·¿¤Î°ú¿ô¤Ç wait ¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£

int w1 () { int w; return wait (&w); }
int w2 () { union wait w; return wait (&w); }

¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»È¤Ã¤¿¾ì¹ç¡¢ wait ¤Î¼ÂÁõ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡£

pid_t wait (wait_status_ptr_t p)
{
  return waitpid (-1, p.__ip, 0);
}

unused
¤³¤Î°À­¤ò·¿(union ¤ä struct ¤ò´Þ¤à)¤Ë»ØÄꤹ¤ë¤È¡¢¤³¤Î·¿¤ÎÊÑ¿ô¤¬»È¤ï¤ì¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£GNU CC ¤Ï¡¢¤³¤Î·¿¤ÎÊÑ¿ô¤¬²¿¤â¤·¤Ê¤¤¤è¤¦¤Ë¸«¤¨¤¿¾ì¹ç¤Ç¤â¡¢¤³¤ì¤é¤ÎÊÑ¿ô¤ËÂФ·¤Æ¤Ï·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¡£¤³¤ì¤Ï¡¢¥í¥Ã¥¯¤ä¥¹¥ì¥Ã¥É¤Î¥¯¥é¥¹¤Ç¤ÏÎɤ¯¤¢¤ë¤³¤È¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î¾ì¹ç¡¢ÄêµÁ¤Ï¤µ¤ì¤ë¤¬»²¾È¤Ï¤µ¤ì¤Ê¤¤¡£¤À¤¬¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¤ä¥Ç¥¹¥È¥é¥¯¥¿¤¬´Þ¤Þ¤ì¤Æ¤¤¤Æ¡¢¤½¤ÎÃæ¤Ë¤Ï¿§¡¹¤Ê´ÉÍý¤ò¹Ô¤Ê¤¦µ¡Ç½¤ò»ý¤Ä¡£

°À­¤òÊ£¿ô»ØÄꤹ¤ë¤Ë¤Ï¡¢¥«¥ó¥Þ¤Ç¶èÀڤäÆÁ´ÂΤòÆó½Å³ç¸Ì¤Ç°Ï¤à¡£Î㤨¤Ð¡¢__attribute__ ((aligned (16), packed)) ¤È¤¹¤ë¡£


Node:Inline, Next:, Previous:Type Attributes, Up:C Extensions

¥Þ¥¯¥í¤ÈÆ±ÄøÅ٤ή¤µ¤Î¥¤¥ó¥é¥¤¥óŸ³«´Ø¿ô

´Ø¿ô¤ò inline ¤ÈÀë¸À¤¹¤ë¤³¤È¤Ç¡¢¤½¤Î´Ø¿ô¤Î¥³¡¼¥É¤ò¸Æ½Ð¤·²Õ½ê¤ËÅý¹ç¤¹¤ë¤³¤È¤ò GNU CC ¤Ë»Ø¼¨¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢´Ø¿ô¸Æ½Ð¤·¤ÎÉé²Ù¤òºï½ü¤¹¤ë¤Î¤Ç¼Â¹Ô¤¬Â®¤¯¤Ê¤ë¡£¤µ¤é¤Ë¡¢¼Â°ú¿ôÃͤΤɤ줫¤¬Äê¿ô¤Ç¤¢¤ì¤Ð¡¢¤½¤ì¤é¤ÎÃͤ¬´ûÃΤǤ¢¤ë¤³¤È¤Ë¤è¤ê¡¢¥¤¥ó¥é¥¤¥ó»ØÄê¤Î¤Ä¤¤¤¿´Ø¿ô¤Î¥³¡¼¥É¤òÁ´¤Æ´Þ¤á¤ëɬÍפ¬Ìµ¤¤¤è¤¦¤Ë¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Î¥³¡¼¥É¤Îñ½ã²½¤¬²Äǽ¤Ë¤Ê¤ë¡£¥¤¥ó¥é¥¤¥óŸ³«¤Ë¤è¤ê¥³¡¼¥É¥µ¥¤¥º¤¬¤É¤¦¤Ê¤ë¤«¤Ïͽ¬¤¬Æñ¤·¤¤¡£¥¤¥ó¥é¥¤¥óŸ³«¤Ë¤è¤ê¡¢¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥É¤ÏÂ礭¤¯¤Ê¤ë¤³¤È¤â¤¢¤ë¤·¡¢¾®¤µ¤¯¤Ê¤ë¤³¤È¤â¤¢¤ë¡£¸Ä¡¹¤Î¾ì¹ç¤Ë¤è¤ë¡£´Ø¿ô¤Î¥¤¥ó¥é¥¤¥óŸ³«¤ÏºÇŬ²½¤Î°ì¤Ä¤Ç¤¢¤ê¡¢ºÇŬ²½ÉÕ¤­¥³¥ó¥Ñ¥¤¥ë¤Î¾ì¹ç¤Ë¤·¤«¼ÂºÝ¤Ë¤Ïµ¡Ç½¤·¤Ê¤¤¡£-O ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¡¢¼ÂºÝ¤Ë¤Ï¤É¤Î´Ø¿ô¤â¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤Ê¤¤¡£

´Ø¿ô¤Î¥¤¥ó¥é¥¤¥óŸ³«¤òÀë¸À¤¹¤ë¤Ë¤Ï¡¢¤½¤ÎÀë¸À¤Ç inline ¤È¤¤¤¦¥­¡¼¥ï¡¼¥É¤ò°Ê²¼¤Î¤è¤¦¤Ë»È¤¦¡£

inline int
inc (int *a)
{
  (*a)++;
}

(ANSI C ¤Ë½àµò¤¹¤ë¥×¥í¥°¥é¥à¤Ç¼è¤ê¹þ¤Þ¤ì¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò³Æ¾ì¹ç¤Ï¡¢inline ¤ÎÂå¤ï¤ê¤Ë __inline__ ¤È½ñ¤¯¤è¤¦¤Ë¤¹¤ë¡£See Alternate Keywords¡£) ¡Ö½¼Ê¬Ã±½ã¡×¤Ê´Ø¿ô¤Ï¡¢-finline-functions ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢Á´¤Æ¥¤¥ó¥é¥¤¥óŸ³«´Ø¿ô¤È¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

´Ø¿ôÄêµÁÃæ¤Ç¤¢¤ëÆÃÄê¤Î»È¤¤Êý¤ò¤·¤Æ¤¤¤ë¤È¡¢¥¤¥ó¥é¥¤¥óŸ³«¤ËŬ¤µ¤Ê¤¯¤Ê¤ë¤³¤È¤ËÃí°Õ¡£¤½¤¦¤¤¤¦»È¤¤Êý¤Ë¤Ï¼¡¤Î¤â¤Î¤¬¤¢¤ë¡£varargs ¤ò»È¤Ã¤Æ¤¤¤ë¡¢alloca ¤ò»È¤Ã¤Æ¤¤¤ë¡¢²ÄÊÑĹ¥Ç¡¼¥¿·¿¤ò»È¤Ã¤Æ¤¤¤ë(see Variable Length)¡¢·×»»·Á goto ¤ò»È¤Ã¤Æ¤¤¤ë(see Labels as Values)¡¢Èó¶É½ê goto ¤ò»È¤Ã¤Æ¤¤¤ë¡¢Æþ¤ì»Ò´Ø¿ô¤ò»È¤Ã¤Æ¤¤¤ë(see Nested Functions)¡£-Winline ¤ò»ØÄꤹ¤ë¤È¡¢inline ÉÕ¤­¤Î´Ø¿ô¤¬ÃÖ¤­´¹¤¨²Äǽ¤Ç¤Ê¤¤¾ì¹ç¤Ï·Ù¹ð¤ò½Ð¤·¡¢²Äǽ¤Ç¤Ê¤¤Íýͳ¤òɽ¼¨¤¹¤ë¡£

C ¤È Objective C ¤Ç¤Ï¡¢C++ ¤È¤Ï°ã¤Ã¤Æ¡¢¥­¡¼¥ï¡¼¥É inline ¤Ï¡¢´Ø¿ô¤Î¥ê¥ó¥±¡¼¥¸¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤¤³¤È¤ËÃí°Õ¡£

GNU CC ¤Ï¡¢C++ ¥×¥í¥°¥é¥à¤Î¥¯¥é¥¹ËÜÂÎÆâ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥á¥ó¥Ð´Ø¿ô¤Ï¡¢ÌÀ¼¨Åª¤Ë inline ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢¼«Æ°Åª¤Ë¥¤¥ó¥é¥¤¥óŸ³«¤¹¤ë¡£(¤³¤Î¸ú²Ì¤ò¤Ê¤¯¤¹¤Ë¤Ï¡¢-fno-default-inline ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£see Options Controlling C++ Dialect.)

¤¢¤ë´Ø¿ô¤¬¥¤¥ó¥é¥¤¥óŸ³«´Ø¿ô¤Ç¤¢¤ê static ¤Ç¤â¤¢¤ë¤È¤­¡¢¤½¤Î´Ø¿ô¤Ø¤Î¸Æ½Ð¤·¤¬Á´¤Æ¸Æ½Ð¤·Â¦¤ËÅý¹ç¤µ¤ì¤Æ¡¢¤«¤Ä¤½¤Î´Ø¿ô¤Î¥¢¥É¥ì¥¹¤¬»È¤ï¤ì¤ë¤³¤È¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢´Ø¿ô¼«¿È¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ï·è¤·¤Æ»²¾È¤µ¤ì¤ë¤³¤È¤¬¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢GNU CC ¤Ï¡¢-fkeep-inline-functions ¤ò»ØÄꤷ¤Ê¤¤¸Â¤ê¡¢¤½¤Î´Ø¿ô¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ò¼ÂºÝ¤Ë¤Ï½ÐÎϤ·¤Ê¤¤¡£¸Æ½Ð¤·¤ÎÃæ¤Ë¤ÏÍÍ¡¹¤ÊÍýͳ(ÆÃ¤Ë¡¢´Ø¿ôÄêµÁ¤ÎÁ°¤Ë¤¢¤ë¸Æ½Ð¤·¤ä¡¢´Ø¿ôÄêµÁÆâ¤ÎºÆµ¢¸Æ½Ð¤·¤ÏÅý¹ç¤¬ÉÔ²Äǽ¤Ç¤¢¤ë)¤ËÅý¹ç¤Ç¤­¤Ê¤¤¡£Åý¹ç¤µ¤ì¤Ê¤¤¸Æ½Ð¤·¤¬¤¢¤ë¤È¡¢¤½¤Î´Ø¿ô¤ÏÄ̾ï¤Î¤è¤¦¤Ë¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¡£´Ø¿ô¤Ï¡¢¥×¥í¥°¥é¥à¤¬¤½¤Î¥¢¥É¥ì¥¹¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤â¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥¤¥ó¥é¥¤¥óŸ³«¤¬ÉÔ²Äǽ¤À¤«¤é¤Ç¤¢¤ë¡£

¥¤¥ó¥é¥¤¥ó´Ø¿ô¤¬ static ¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Ï¾¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤«¤é¤Î¸Æ½Ð¤·¤¬¤¢¤ë¤³¤È¤òÁÛÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥°¥í¡¼¥Ð¥ë¥·¥ó¥Ü¥ë¤Ï¤É¤ó¤Ê¥×¥í¥°¥é¥à¤Ç¤â°ì²Õ½ê¤Ç¤·¤«ÄêµÁ¤Ç¤­¤Ê¤¤¤Î¤Ç¡¢¤½¤Î´Ø¿ô¤Ï¾¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÇÄêµÁ¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢Â¾¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¸Æ½Ð¤·¤ÏÅý¹ç¤Ç¤­¤Ê¤¤¤Î¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢Èó static ¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Ï¾ï¤ËÉáÄ̤ηÁ¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¡£

´Ø¿ôÄêµÁ¤Ë inline ¤È extern ¤ÎξÊý¤ò»ØÄꤹ¤ë¤È¡¢¤½¤ÎÄêµÁ¤Ï¥¤¥ó¥é¥¤¥óŸ³«¤Ç¤Î¤ß»È¤ï¤ì¤ë¡£´Ø¿ôÄêµÁ¼«ÂΤ¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£¤½¤Î´Ø¿ô¤Î¥¢¥É¥ì¥¹¤òÌÀ¼¨Åª¤Ë»²¾È¤·¤Æ¤â¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Ê¤¤¤Î¤Ç¤¢¤ë¡£¤½¤Î¤è¤¦¤Ê¥¢¥É¥ì¥¹¤Ï¡¢´Ø¿ô¤òÀë¸À¤·¤¿¤À¤±¤ÇÄêµÁ¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Î¤è¤¦¤Ë¡¢³°Éô»²¾È¤Ë¤Ê¤ë¡£

inline ¤È extern ¤ò¤³¤Î¤è¤¦¤ËÁȤ߹ç¤ï¤»¤ë¤È¡¢¤Û¤È¤ó¤É¥Þ¥¯¥í¤ÈƱ¤¸¸ú²Ì¤Ë¤Ê¤ë¡£¤³¤ì¤Î»È¤¤Êý¤Ï¡¢¤³¤ÎÆó¤Ä¤Î¥­¡¼¥ï¡¼¥É¤òÉÕ¤±¤¿´Ø¿ôÄêµÁ¤ò¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ËÃÖ¤¤¤Æ¤ª¤­¡¢¤³¤ÎÄêµÁ¤Î¥³¥Ô¡¼(inline ¤È extern ¤òÉÕ¤±¤Ê¤¤¤â¤Î)¤ò¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¤ËÃÖ¤¤¤Æ¤ª¤¯¤Î¤Ç¤¢¤ë¡£¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÊý¤Î´Ø¿ôÄêµÁ¤Ï¡¢¤³¤Î´Ø¿ô¤Î¤Û¤È¤ó¤É¤Î¸Æ½Ð¤·¤ò¥¤¥ó¥é¥¤¥óŸ³«¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡£¤³¤Î´Ø¿ô¤Î¤½¤ì°Ê³°¤Î»È¤¤Êý¤ò¤¹¤ì¤Ð¡¢¥é¥¤¥Ö¥é¥êÃæ¤Î°ì¸Ä¤Î¥³¥Ô¡¼¤ÎÊý¤ò»²¾È¤¹¤ë¡£

GNU C ¤Ï¡¢ºÇŬ²½¤ò¹Ô¤ï¤Ê¤¤¾ì¹ç¤Ï¤É¤ó¤Ê´Ø¿ô¤â¥¤¥ó¥é¥¤¥óŸ³«¤·¤Ê¤¤¡£¤³¤¦¤¤¤¦¾ì¹ç¤Ë¥¤¥ó¥é¥¤¥óŸ³«¤·¤¿Êý¤¬Îɤ¤¤Î¤«¤É¤¦¤«¤Ï¤Ã¤­¤ê¤·¤Æ¤¤¤Ê¤¤¡£¤À¤¬¡¢ºÇŬ²½¤ò¹Ô¤ï¤Ê¤¤¾ì¹ç¤ÎÀµ¤·¤¤¼ÂÁõ¤¬Æñ¤·¤¤¤È¤¤¤¦¤³¤È¤¬È½¤Ã¤¿¤Î¤Ç¡¢²æ¡¹¤Ï´Êñ¤ÊÊý¤Ë¤·¤¿¡£¤¹¤Ê¤ï¤Á¡¢¥¤¥ó¥é¥¤¥óŸ³«¤ò¤·¤Ê¤¤¤³¤È¤Ë¤·¤¿¡£


Node:Extended Asm, Next:, Previous:Inline, Up:C Extensions

C ¤Î¼°¤ò¥ª¥Ú¥é¥ó¥É¤È¤¹¤ë¥¢¥»¥ó¥Ö¥éÌ¿Îá

asm ¤ò»È¤Ã¤¿¾ì¹ç¤Î¥¢¥»¥ó¥Ö¥éÌ¿Îá¤Ç¡¢¤½¤ÎÌ¿Îá¤Î¥ª¥Ú¥é¥ó¥É¤òC ¤Î¼°¤ò»È¤Ã¤Æ»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ì¤Ï¡¢ÆÉ¼Ô¤¬»È¤¤¤¿¤¤¥Ç¡¼¥¿¤¬¤É¤Î¥ì¥¸¥¹¥¿¤Ë¤¢¤ë¤Î¤«¡¢¥á¥â¥ê¤Î¤É¤³¤Ë¤¢¤ë¤Î¤«¤ò¹Í¤¨¤ëɬÍפ¬¤Ê¤¤¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡£

¥Þ¥·¥óµ­½Ò¤Ë¸½¤ì¤ë¤è¤¦¤Ê¥¢¥»¥ó¥Ö¥éÌ¿Îá¤Î¥Æ¥ó¥×¥ì¡¼¥È¡¢¤½¤ì¤Ë³Æ¥ª¥Ú¥é¥ó¥É¤ËÂФ¹¤ë¥ª¥Ú¥é¥ó¥ÉÀ©Ìóʸ»úÎó¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

Î㤨¤Ð¡¢°Ê²¼¤Ë 68881 ¤Î fsinx Ì¿Îá¤Î»È¤¤Êý¤ò¼¨¤¹¡£

asm ("fsinx %1,%0" : "=f" (result) : "f" (angle));

¤³¤³¤Ç¡¢angle ÆþÎÏ¥ª¥Ú¥é¥ó¥É¤òɽ¤¹ C ¤Î¼°¤Ç¤¢¤ê¡¢result ¤Ï½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤òɽ¤¹ C ¤Î¼°¤Ç¤¢¤ë¡£¤½¤ì¤¾¤ì¡¢"f" ¤ò¥ª¥Ú¥é¥ó¥ÉÀ©Ìó¤È¤·¤Æ»ý¤Á¡¢ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤¬É¬ÍפǤ¢¤ë»ö¤ò¼¨¤·¤Æ¤¤¤ë¡£=f ¤Î = ¤Ï¡¢¥ª¥Ú¥é¥ó¥É¤¬½ÐÎϤǤ¢¤ë¤³¤È¤òɽ¤·¤Æ¤¤¤ë¡£½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤ÎÀ©Ìó¤ÏÁ´¤Æ = ¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£À©Ìó¤Î½ñ¤­Êý¤Ï¥Þ¥·¥óµ­½Ò¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ë(see Constraints)¡£

³Æ¥ª¥Ú¥é¥ó¥É¤Ï°ì¸Ä¤Î¥ª¥Ú¥é¥ó¥ÉÀ©Ìóʸ»úÎó¤È¤½¤ì¤Ë³¤¯³ç¸Ì¤ËÆþ¤Ã¤¿ C ¤Î¼°¤Çµ­½Ò¤µ¤ì¤ë¡£¥³¥í¥ó¤Ç¥¢¥»¥ó¥Ö¥é¥Æ¥ó¥×¥ì¡¼¥È¤È½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤ÎÀèÆ¬¤ò¶èÀڤꡢ¤â¤¦°ì¤Ä¤Î¥³¥í¥ó¤ÇºÇ¸å¤Î½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤ÈÆþÎÏ¥ª¥Ú¥é¥ó¥É¤ÎÀèÆ¬¤ò¶èÀڤ롣¥«¥ó¥Þ¤Ç¡¢¤½¤ì¤¾¤ì¤Î¥°¥ë¡¼¥×¤Î¥ª¥Ú¥é¥ó¥É¤ò¶èÀڤ롣¥ª¥Ú¥é¥ó¥É¤ÎÁí¿ô¤Ï¡¢10 ¤«¡¢¥Þ¥·¥óµ­½ÒÃæ¤ÎÌ¿Îá¥Ñ¥¿¡¼¥ó¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤ÎÃæ¤ÇºÇÂç¤Î¥ª¥Ú¥é¥ó¥É¿ô¤«¡¢¤É¤Á¤é¤«Â礭¤¤¤Û¤¦¤ËÀ©¸Â¤µ¤ì¤ë¡£

½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Ï¤Ê¤¤¤¬¡¢ÆþÎÏ¥ª¥Ú¥é¥ó¥É¤Ï¤¢¤ë¤È¤¤¤¦¾ì¹ç¤Ï¡¢½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤¬ËÜÍèÃÖ¤«¤ì¤ë¾ì½ê¤ò°Ï¤à¤è¤¦¤Ë¥³¥í¥ó¤òÆó¤Ä³¤±¤ÆÃÖ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Î¼°¤Ïº¸ÊÕÃͤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£GNU CC ¤Ï¤³¤ì¤ò¸¡ºº¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£ÆþÎÏ¥ª¥Ú¥é¥ó¥É¤Ïº¸ÊÕÃͤǤ¢¤ëɬÍפϤʤ¤¡£GNU CC ¤Ï¡¢¥ª¥Ú¥é¥ó¥É¤Î¥Ç¡¼¥¿·¿¤¬¼Â¹Ô¤µ¤ì¤ëÌ¿Îá¤ËŬÀڤʤâ¤Î¤«¤É¤¦¤«¤Î¸¡ºº¤Ï¹Ô¤¨¤Ê¤¤¡£¥¢¥»¥ó¥Ö¥éÌ¿Îá¥Æ¥ó¥×¥ì¡¼¥È¤Î¹½Ê¸²òÀϤϹԤï¤Ê¤¤¤Î¤Ç¡¢¤½¤ì¤¬²¿¤ò°ÕÌ£¤¹¤ë¤â¤Î¤«¡¢¤¢¤ë¤¤¤Ï¤½¤ì¤¬¥¢¥»¥ó¥Ö¥é¤Ø¤ÎÆþÎϤȤ·¤ÆÍ­¸ú¤Ê¤â¤Î¤«¤É¤¦¤«¤µ¤¨¤âȽ¤é¤Ê¤¤¤Î¤Ç¤¢¤ë¡£³ÈÄ¥¤µ¤ì¤¿ asm ¤Îµ¡Ç½¤¬¤â¤Ã¤È¤âÎɤ¯»È¤ï¤ì¤ë¤Î¤Ï¡¢GNU CC ¤¬¤½¤Î¸ºß¤òÃΤé¤Ê¤¤¤è¤¦¤Êµ¡³£¸ìÌ¿Îá¤ËÂФ·¤Æ¤Ç¤¢¤ë¡£½ÐÎϼ°¤¬Ä¾ÀÜ¥¢¥É¥ì¥¹¤ò»ØÄê¤Ç¤­¤Ê¤¤¤â¤Î¤Ç¤¢¤ë¾ì¹ç¤Ï(Î㤨¤Ð¡¢¥Ó¥Ã¥È¡¼¥Õ¥£¡¼¥ë¥É)¡¢À©Ìó¤Ç¥ì¥¸¥¹¥¿¤òµö¤¹¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤½¤Î¾ì¹ç¡¢GNU CC ¤Ï asm ¤Î½ÐÎϤȤ·¤Æ¥ì¥¸¥¹¥¿¤ò»È¤¤¡¢¤½¤Î¸å¤½¤Î¥ì¥¸¥¹¥¿¤ò½ÐÎÏÀè¤Ë³ÊǼ¤¹¤ë¡£

Ä̾ï¤Î½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Ï½ñ¤­¹þ¤ßÀìÍѤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£GNU CC ¤Ï¡¢¸½ºß¤ÎÌ¿Îá¤ÎÁ°¤Ë¤³¤ì¤é¤Î¥ª¥Ú¥é¥ó¥É¤ËÆþ¤Ã¤Æ¤¤¤¿Ãͤϻà¤ó¤Ç¤ª¤ê¡¢À¸À®¤¹¤ëɬÍפ¬¤Ê¤¤¤ÈÁÛÄꤹ¤ë¡£³ÈÄ¥ asm ¤Ï¡¢ÆþÎÏ¡¿½ÐÎÏξÍÑ¡¢¤¢¤ë¤¤¤ÏÆÉ¤ß½ñ¤­Î¾ÍѤΥª¥Ú¥é¥ó¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¤½¤¦¤¤¤¦¥ª¥Ú¥é¥ó¥É¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¤Ë¤ÏÀ©Ìóʸ»ú + ¤ò»È¤¤¡¢½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤È¤·¤ÆÎóµó¤¹¤ë¡£

ÆÉ¤ß½ñ¤­Î¾ÍѤΥª¥Ú¥é¥ó¥É(¤¢¤ë¤¤¤Ï°ìÉô¤Î¥Ó¥Ã¥È¤·¤«ÊѲ½¤·¤Ê¤¤¥ª¥Ú¥é¥ó¥É) ¤ËÂФ¹¤ëÀ©Ì󤬥쥸¥¹¥¿¤òµö¤·¤Æ¤¤¤ë¤Ê¤é¡¢Ê̤ÎÁªÂò»è¤È¤·¤Æ¡¢ÏÀÍýŪ¤Ë¤Ï¤½¤Îµ¡Ç½¤òÆó¤Ä¤ÎÊÌ¡¹¤Î¥ª¥Ú¥é¥ó¥É¤Ëʬ³ä¤·¡¢°ì¤Ä¤òÆþÎÏ¥ª¥Ú¥é¥ó¥É¡¢¤â¤¦°ì¤Ä¤ò½ñ¤­¹þ¤ßÀìÍѽÐÎÏ¥ª¥Ú¥é¥ó¥É¤È¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£¤³¤ÎÆó¤Ä¤Î¥ª¥Ú¥é¥ó¥É¤Î´Ö¤Î´Ø·¸¤Ï¡¢À©Ìó¤Ë¤è¤ê¡¢Ì¿Îá¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ë¤ÏÆó¤Ä¤Î¥ª¥Ú¥é¥ó¥É¤¬Æ±¤¸°ÌÃ֤ˤ¢¤ëɬÍפ¬¤¢¤ë¤È»ØÄꤹ¤ë¤³¤È¤Ç¡¢É½¤µ¤ì¤ë¡£Î¾Êý¤Î¥ª¥Ú¥é¥ó¥É¤ËƱ¤¸ C ¤Î¼°¤ò»È¤¦¤³¤È¤â½ÐÍè¤ë¤·¡¢°ã¤¦¼°¤ò»È¤Ã¤Æ¤âÎɤ¤¡£Î㤨¤Ð¡¢°Ê²¼¤Ç¤Ï¡¢(²Í¶õ¤Î) combine Ì¿Îá¤ò bar ¤òÆÉ¤ß¤À¤·ÀìÍÑÆÉ¤ß¤À¤·¸µ¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ¡¢foo ¤òÆÉ¤ß½ñ¤­Î¾ÍÑÌÜŪÀ襪¥Ú¥é¥ó¥É¤È¤·¤Æ½ñ¤¤¤Æ¤¤¤ë¡£

asm ("combine %2,%0" : "=r" (foo) : "0" (foo), "g" (bar));

¥ª¥Ú¥é¥ó¥É 1 ¤ÎÀ©Ìó "0" ¤Ï¡¢¥ª¥Ú¥é¥ó¥É 0 ¤ÈƱ¤¸°ÌÃÖ¤òÀê¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤È¤¤¤¦¤³¤È¤òɽ¤¹¡£À©Ìó¤ÎÃæ¤Ë¿ô»ú¤òÃÖ¤¯¤Î¤ÏÆþÎÏ¥ª¥Ú¥é¥ó¥É¤Î¾ì¹ç¤À¤±µö¤µ¤ì¡¢¤½¤ì¤Ï½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

À©Ìó¤ÎÃæ¤Î¿ô»ú¤À¤±¤¬¡¢°ì¤Ä¤Î¥ª¥Ú¥é¥ó¥É¤¬¤â¤¦°ì¤ÄÊ̤Υª¥Ú¥é¥ó¥É¤ÈƱ¤¸°ÌÃ֤ˤʤ뤳¤È¤òÊݾڤǤ­¤ë¡£Ã±¤Ë foo ¤¬Î¾Êý¤Î¥ª¥Ú¥é¥ó¥É¤ÎÃͤˤʤäƤ¤¤ë¤È¤¤¤¦¤À¤±¤Ç¤Ï¡¢À¸À®¤µ¤ì¤ë¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ÇƱ¤¸°ÌÃ֤ˤʤë¤È¤¤¤¦¤³¤È¤òÊݾڤ¹¤ë¤Ë¤Ï½¼Ê¬¤Ç¤Ï¤Ê¤¤¡£°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¤¤¿¤Î¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£

asm ("combine %2,%0" : "=r" (foo) : "r" (foo), "g" (bar));

¿§¡¹¤ÊºÇŬ²½¤äºÆ¥í¡¼¥É¤Ë¤è¤ê¡¢¥ª¥Ú¥é¥ó¥É 0 ¤È 1 ¤¬°Û¤Ê¤ë¥ì¥¸¥¹¥¿¤ËÃÖ¤«¤ì¤ë²ÄǽÀ­¤Ï¤¢¤ë¡£GNU CC ¤Ï¡¢¤½¤¦¤·¤Ê¤¤Íýͳ¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤òÃΤäƤ¤¤ë¡£Î㤨¤Ð¡¢GCC ¤Ï foo ¤ÎÃͤΥ³¥Ô¡¼¤¬°ì¤Ä¤Î¥ì¥¸¥¹¥¿¤Ë¤¢¤ë¤³¤È¤ò¸«¤Ä¤±¡¢¥ª¥Ú¥é¥ó¥É 1 ÍѤˤ½¤ì¤ò»È¤¦¤¬¡¢¥ª¥Ú¥é¥ó¥É 0 ¤òÊ̤Υ쥸¥¹¥¿¤Ë½ÐÎϤ¹¤ë¤«¤â¤·¤ì¤Ê¤¤(¸å¤Ç foo ¼«¿È¤Î¥¢¥É¥ì¥¹¤Ë¥³¥Ô¡¼¤¹¤ë)¡£ÅöÁ³¡¢¥ª¥Ú¥é¥ó¥É 1 ÍѤΥ쥸¥¹¥¿¤Ï¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ç¤Ï¸ÀµÚ¤µ¤¨¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¤½¤Î·ë²Ì¤Ïưºî¤·¤Ê¤¤¤Î¤À¤¬¡¢GNU CC ¤Ë¤Ï¤½¤ì¤¬È½¤é¤Ê¤¤¤Î¤Ç¤¢¤ë¡£

Ì¿Îá¤Ë¤è¤Ã¤Æ¤ÏÆÃÄê¤Î¥Ï¡¼¥É¥ì¥¸¥¹¥¿¤ò¾å½ñ¤­¤¹¤ë¤â¤Î¤¬¤¢¤ë¡£¤³¤Î¤³¤È¤òµ­½Ò¤¹¤ë¤Ë¤Ï¡¢ÆþÎÏ¥ª¥Ú¥é¥ó¥É¤Î¸å¤í¤Ë3ÈÖÌܤΥ³¥í¥ó¤òÃÖ¤­¡¢¤½¤Î¸å¤Ë¾å½ñ¤­¤µ¤ì¤ë¥Ï¡¼¥É¥ì¥¸¥¹¥¿Ì¾¤ò¡¢¥ì¥¸¥¹¥¿°ì¤Ä¤ò°ì¤Ä¤Îʸ»úÎó¤È¤·¤ÆÃÖ¤¯¡£°Ê²¼¤Ë VAX ÍѤμºݤÎÎã¤ò¼¨¤¹¡£

asm volatile ("movc3 %0,%1,%2"
              : /* no outputs */
              : "g" (from), "g" (to), "g" (count)
              : "r0", "r1", "r2", "r3", "r4", "r5");

ÆþÎÏ¥ª¥Ú¥é¥ó¥É¤È½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤¬½Å¤Ê¤ë¤è¤¦¤ÊÇ˲õ»ØÄê¤Ï¥¨¥é¡¼¤Ç¤¢¤ë(Î㤨¤Ð¡¢°ì¤Ä¤Î¥á¥ó¥Ð¤«¤é¤Ê¤ë¥ì¥¸¥¹¥¿¥¯¥é¥¹¤òµ­½Ò¤¹¤ë¥ª¥Ú¥é¥ó¥É¤òÇ˲õ¤µ¤ì¤ë¥ê¥¹¥È¤Ç¸ÀµÚ¤¹¤ë¤³¤È)¡£°ìÈ֤Ϥ䭤ꤷ¤Æ¤¤¤ëÎã¤Ï¡¢ÆþÎÏ¥ª¥Ú¥é¥ó¥É¤¬Êѹ¹¤ò¼õ¤±¤ë¤Î¤Ë¡¢½ÐÎϤȤ·¤Æ»È¤ï¤ì¤Æ¤¤¤Ê¤¤¤È¤¤¤¦µ­½Ò¤ò¹Ô¤¦¤Î¤ÏÀµ¤·¤¯¤Ê¤¤¡£¤¤¤º¤ì¤Ë¤·¤Æ¤âÆþÎÏ¥ª¥Ú¥é¥ó¥É¤È½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£»È¤ï¤ì¤Ê¤¤½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤·¤«¤Ê¤¤¾ì¹ç¤Ï¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë¤è¤¦¤Ë¡¢asm ʬ¤Ë volatile ¤ò»ØÄꤹ¤ëɬÍפ⤢¤ë¡£

¤³¤Î¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤«¤éÆÃÄê¤Î¥Ï¡¼¥É¥¦¥§¥¢¥ì¥¸¥¹¥¿¤ò»²¾È¤¹¤ë¾ì¹ç¤Ï¡¢¤ª¤½¤é¤¯¡¢»°ÈÖÌܤΥ³¥í¥ó¤Î¸å¤Ë¤½¤Î¥ì¥¸¥¹¥¿¤òÎóµó¤·¤Æ¡¢GCC ¤ËÂФ·¤Æ¤½¤Î¥ì¥¸¥¹¥¿¤ÎÃͤ¬Êѹ¹¤ò¼õ¤±¤ë¤³¤È¤òÃΤ餻¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£

ÆÉ¼Ô¤Î½ñ¤¤¤¿¥¢¥»¥ó¥Ö¥éÌ¿Î᤬¾ò·ï¥³¡¼¥É¥ì¥¸¥¹¥¿¤òÊѹ¹¤·ÆÀ¤ë¤Ê¤é¡¢cc ¤òÇ˲õ¤µ¤ì¤ë¥ì¥¸¥¹¥¿¤Î¥ê¥¹¥È¤ËÆþ¤ì¤Æ¤ª¤¯¡£¤¤¤¯¤Ä¤«¤Îµ¡¼ï¤Ç¤Ï GNU CC ¤Ï¡¢¾ò·ï¥³¡¼¥É¤ò¤¢¤ëÆÃÄê¤Î¥Ï¡¼¥É¥¦¥§¥¢¥ì¥¸¥¹¥¿¤Çɽ¸½¤¹¤ë¡£¤½¤ì°Ê³°¤Îµ¡¼ï¤Ç¤Ï¡¢¾ò·ï¥³¡¼¥É¤Ï°ã¤¦¼è°·¤¤¤ò¼õ¤±¤ë¤Î¤Ç¡¢cc ¤ò»ØÄꤷ¤Æ¤â°ÕÌ£¤¬¤Ê¤¤¡£¤À¤¬¡¢¤É¤ó¤Êµ¡¼ï¤Ç¤â¥³¡¼¥É¤È¤·¤Æ¤ÏÍ­¸ú¤Ç¤¢¤ë¡£

ÆÉ¼Ô¤Î½ñ¤¤¤¿¥¢¥»¥ó¥Ö¥éÌ¿Î᤬ͽ´ü¤Ç¤­¤Ê¤¤·Á¤Ç¥á¥â¥ê¤òÊѹ¹¤¹¤ë¤Ê¤é¡¢memory ¤òÇ˲õ¤µ¤ì¤ë¥ì¥¸¥¹¥¿¤Î¥ê¥¹¥È¤ËÄɲ䷤Ƥª¤¯¡£¤³¤¦¤¹¤ë¤È¡¢GCC ¤Ï¡¢¤½¤Î¥¢¥»¥ó¥Ö¥éÌ¿Îá¤ò±Û¤¨¤Æ¤Ï¡¢¥á¥â¥êÃͤò¥ì¥¸¥¹¥¿¤Ë¥­¥ã¥Ã¥·¥å¤·¤Æ¤ª¤¯¤³¤È¤Ï¤·¤Ê¤¤¡£

Ê£¿ô¤Î¥¢¥»¥ó¥Ö¥éÌ¿Îá¤ò¤Þ¤È¤á¤Æ°ì¸Ä¤Î asm ¥Æ¥ó¥×¥ì¡¼¥È¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤Î¾ì¹ç¡¢¤½¤ì¤¾¤ì¤ò²þ¹Ô(\n ¤È½ñ¤¯)¤«¥¢¥»¥ó¥Ö¥é¤¬µö¤¹¤Ê¤é¡¢¥»¥ß¥³¥í¥ó¤Ç¶èÀڤ롣GNU ¥¢¥»¥ó¥Ö¥é¤Ï¥»¥ß¥³¥í¥ó¤¬»È¤¨¤ë¤·¡¢¤Û¤È¤ó¤É¤Î Unix ¥¢¥»¥ó¥Ö¥é¤Ç¤â»È¤¨¤ë¤è¤¦¤À¡£ÆþÎÏ¥ª¥Ú¥é¥ó¥É¤Ï¤É¤ÎÇ˲õ¥ì¥¸¥¹¥¿¤â»È¤ï¤Ê¤¤¤³¤È¡¢¤½¤·¤Æ¡¢½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Î¥¢¥É¥ì¥¹¤â»È¤ï¤ì¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤ë¡£¤³¤Î¤¿¤á¡¢Ç˲õ¥ì¥¸¥¹¥¿¤Ï¹¥¤­¤Ê¤À¤±²¿Å٤ǤâÆÉ¤ß½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£°ì¸Ä¤Î¥Æ¥ó¥×¥ì¡¼¥È¤ËÊ£¿ô¤ÎÌ¿Îá¤òÆþ¤ì¤ëÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£¥µ¥Ö¥ë¡¼¥Á¥ó _foo ¤Ï¥ì¥¸¥¹¥¿ 9 ¤È 10 ¤Ç°ú¿ô¤ò¼õ¤±¼è¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£

asm ("movl %0,r9;movl %1,r10;call _foo"
     : /* no outputs */
     : "g" (from), "g" (to)
     : "r9", "r10");

½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Ë & À©Ì󽤾þ»Ò¤¬¤Ê¤¤¸Â¤ê¡¢GNU CC ¤Ï¡¢´Ø·¸¤Î¤Ê¤¤ÆþÎÏ¥ª¥Ú¥é¥ó¥É¤ÈƱ¤¸¥ì¥¸¥¹¥¿¤Ë¤½¤ì¤ò³ä¤êÅö¤Æ¤ë¡£¤³¤Î»þ¡¢ÆþÎϤϽÐÎϤ¬À¸À®¤µ¤ì¤ëÁ°¤Ë¾ÃÈñ¤µ¤ì¤ë¤È¤¤¤¦ÁÛÄê¤ò¹Ô¤¦¡£¤³¤ÎÁÛÄê¤Ï¡¢¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬¼ÂºÝ¤ËÊ£¿ô¤ÎÌ¿Îᤫ¤éÀ®¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ïµ¶¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¡£¤½¤¦¤¤¤¦¾ì¹ç¡¢ÆþÎϤȽŤʤäƤϤʤé¤Ê¤¤½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Ë¤Ï¤½¤ì¤¾¤ì& ¤òÉÕ¤±¤ë¤³¤È¡£ See Modifiers¡£

¥¢¥»¥ó¥Ö¥éÌ¿Îá¤Ë¤è¤êÀ¸À®¤µ¤ì¤ë¾ò·ï¥³¡¼¥É¤ò¥Æ¥¹¥È¤·¤¿¤¤¾ì¹ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¡¢asm ¹½Ê¸¤Ëʬ´ô¤ÈÌ¿Îá¤ò´Þ¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

asm ("clr %0;frob %1;beq 0f;mov #1,%0;0:"
     : "g" (result)
     : "g" (input));

¤³¤ì¤Ï¥¢¥»¥ó¥Ö¥é¤¬¡¢GNU ¥¢¥»¥ó¥Ö¥é¤ä¤Û¤È¤ó¤É¤Î Unix ¤Î¥¢¥»¥ó¥Ö¥é¤Î¤è¤¦¤Ë¡¢¥í¡¼¥«¥ë¥é¥Ù¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£

¥é¥Ù¥ë¤Ë¤Ä¤¤¤Æ¸À¤¨¤Ð¡¢°ì¤Ä¤Î asm ¤«¤éÊ̤Πasm ¤Ø¤Î¥¸¥ã¥ó¥×¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£GCC ¤ÎºÇŬ²½´ï¤Ï¤½¤¦¤¤¤¦¥¸¥ã¥ó¥×¤Ë¤Ä¤¤¤Æ¤ÏÃΤé¤Ê¤¤¤Î¤Ç¡¢¤É¤Î¤è¤¦¤ËºÇŬ²½¤¹¤ë¤«¤ò·è¤á¤ë¤È¤­¤Ë¹Íθ¤Ë¤¤¤ì¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¤Î¤Ç¤¢¤ë¡£

ÉáÄÌ¡¢¤³¤ì¤é¤Î asm Ì¿Îá¤òºÇ¤â¼ê·Ú¤Ë»È¤¦¤Ë¤Ï¡¢´Ø¿ô¤Î¤è¤¦¤Ë¸«¤¨¤ë¥Þ¥¯¥í¤Ë²¡¤·¹þ¤á¤ë¤³¤È¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£

#define sin(x)       \
({ double __value, __arg = (x);   \
   asm ("fsinx %1,%0": "=f" (__value): "f" (__arg));  \
   __value; })

¤³¤³¤Ç¤Ï¡¢ÊÑ¿ô __arg ¤ò»È¤Ã¤Æ¡¢Ì¿Î᤬ŬÀÚ¤Ê double ·¿¤ÎÃͤ˺îÍѤ¹¤ë¤³¤È¡¢¤½¤ì¤Ë°ú¿ô x ¤È¤·¤Æ¼«Æ°Åª¤Ë double ·¿¤ËÊÑ´¹²Äǽ¤Ê¤â¤Î¤À¤±¤ò¼õ¤±ÉÕ¤±¤ë¤³¤È¤òÊݾڤ·¤Æ¤¤¤ë¡£

Ì¿Î᤬Àµ¤·¤¤¥Ç¡¼¥¿·¿¤ËºîÍѤ¹¤ë¤³¤È¤òÊݾڤ¹¤ë¤â¤¦°ì¤Ä¤ÎÊýË¡¤Ï¡¢asm ¤ÎÃæ¤Ç¥­¥ã¥¹¥È¤ò»È¤¦¤³¤È¤Ç¤¢¤ë¡£¤³¤ì¤Ï¡¢ÊÑ¿ô __arg ¤ò»È¤¦ÊýË¡¤È¤Ï¡¢¤µ¤é¤Ëº¹°Û¤ÎÂ礭¤Ê·¿¤ËÊÑ´¹¤¹¤ë¤È¤¤¤¦ÅÀ¤Ë¤ª¤¤¤Æ°Û¤Ê¤ë¡£Î㤨¤Ð¡¢Ë¾¤Þ¤·¤¤·¿¤¬ int ¤À¤È¤¹¤ë¤È¡¢°ú¿ô¤ò int ¤Ë¥­¥ã¥¹¥È¤·¤¿¾ì¹ç¡¢¤½¤Î°ú¿ô¤È¤·¤Æ¥Ý¥¤¥ó¥¿¤ò²¿¤ÎÉÔËþ¤â¤Ê¤¯¼õ¤±ÉÕ¤±¤ë¡£°ìÊý¡¢¤½¤Î°ú¿ô¤ò¡¢__arg ¤Ç»ØÄꤵ¤ì¤ë int ·¿¤ÎÊÑ¿ô¤ËÂåÆþ¤¹¤ë¤È¡¢¸Æ½Ð¤·Â¦¤ÇÌÀ¼¨Åª¤Ë¥­¥ã¥¹¥È¤·¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢¥Ý¥¤¥ó¥¿·¿¤ò»È¤¦¤È·Ù¹ð¤¬¤Ç¤ë¡£

asm ʸ¤Ë½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤¬¤¢¤ë¤È¡¢GNU CC ¤ÏºÇŬ²½ÌÜŪ¤Î¤¿¤á¤Ë¤½¤ÎÌ¿Îá¤Ë¡¢½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤òÊѹ¹¤¹¤ë°Ê³°¤ÎÉûºîÍѤ¬¤Ê¤¤¤³¤È¤òÁÛÄꤹ¤ë¡£¤³¤ì¤ÏÉûºîÍѤ¬¤¢¤ëÌ¿Îá¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤Ï¤Ê¤¤¤¬¡¢Ãí°Õ¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£GCC ¤Ï¡¢½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤¬»È¤ï¤ì¤Æ¤¤¤Ê¤¤¤È¤½¤ÎÌ¿Îá¤ò¾Ãµî¤·¤¿¤ê¡¢¥ë¡¼¥×¤Î³°Â¦¤Ë°Üư¤·¤¿¤ê¡¢¶¦ÄÌÉôʬ¼°¤ò¹½À®¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏÆó¤Ä¤ÎÌ¿Îá¤ò°ì¤Ä¤ËÃÖ¤­´¹¤¨¤¿¤ê¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£¤Þ¤¿¡¢ÆÉ¼Ô¤ÎÌ¿Îá¤ËÊÑ¿ô¤Ë¤Ä¤¤¤ÆÉûºîÍѤ¬¤¢¤ê¡¢¤½¤ÎÊÑ¿ô¤¬¤½¤ì°Ê³°¤Ë¤ÏÊѹ¹¤ò¼õ¤±¤Ê¤¤¤â¤Î¤Ë¸«¤¨¤¿¤Ê¤é¡¢¤½¤ÎÊÑ¿ô¤Î¸µ¤ÎÃͤϡ¢¥ì¥¸¥¹¥¿¤Ë»Ä¤Ã¤Æ¤¤¤ì¤Ð¡¢¸å¤ÇºÆ»ÈÍѤµ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

asm ¤Î¸å¤Ë¥­¡¼¥ï¡¼¥É volatile ¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¤½¤Î asm Ì¿Î᤬ºï½ü¤µ¤ì¤¿¤ê¡¢Ãø¤·¤¯°Üư¤µ¤ì¤¿¤ê¡¢ÁȤ߹ç¤ï¤»¤é¤ì¤¿¤ê¤¹¤ë¤Î¤òÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

#define get_and_set_priority(new)  \
({ int __old; \
   asm volatile ("get_and_set_priority %0, %1": "=g" (__old) : "g" (new)); \
   __old; })

½ÐÎϤΤʤ¤ asm Ì¿Îá¤ò½ñ¤¯¤È¡¢GNU CC ¤Ï¤½¤ÎÌ¿Îá¤ËÉûºîÍѤ¬¤¢¤ë¤³¤È¤òÃΤꡢ¤½¤ÎÌ¿Îá¤ò¾Ã¤·¤¿¤ê¥ë¡¼¥×¤Î³°Â¦¤Ë°Üư¤·¤¿¤ê¤·¤Ê¤¤¡£ÆÉ¼Ô¤Î½ñ¤¤¤¿Ì¿Îá¤ÎÉûºîÍѤ¬½ã¿è¤Ë³°ÉôŪ¤Ê¤â¤Î¤Ç¤Ê¤¤¤¬¡¢ÆþÎϤòÆÉ¤ß¹þ¤ß¡¢»ØÄꤵ¤ì¤¿¥ì¥¸¥¹¥¿¤ä¥á¥â¥ê¤òÇ˲õ¤¹¤ë°Ê³°¤ÎÊýË¡¤ÇÆÉ¼Ô¤Î¥×¥í¥°¥é¥àÃæ¤ÎÊÑ¿ô¤Ë±Æ¶Á¤òÍ¿¤¨¤ë¤Ê¤é¡¢¥­¡¼¥ï¡¼¥É volatile ¤ò»ØÄꤷ¤Æ¡¢GNU CC ¤Î¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Ãæ¿´ÎΰèÆâ¤ÇÌ¿Îá¤ò°Üư¤¹¤ë¤Î¤òËɤ¤¤Ç¤ª¤¯¤Ù¤­¤Ç¤¢¤ë¡£

¥ª¥Ú¥é¥ó¥É¤äÇ˲õ¤¬°ì¤Ä¤â¤Ê¤¤ asm Ì¿Îá(¤½¤ì¤Ë¡Ö¸Å¤¤·Á¼°¤Î¡×asm)¤Ï¡¢ÅþãÉÔǽ¤Ç¤Ê¤¤¸Â¤ê¡¢¤ª¤«¤Þ¤¤¤Ê¤·¤Ëºï½ü¤µ¤ì¤¿¤êÂ礭¤¯°Üư¤µ¤ì¤¿¤ê¤¹¤ë¤³¤È¤Ï¤Ê¤¤¡£¥­¡¼¥ï¡¼¥É volatile ¤ò½ñ¤¤¤¿¤Î¤ÈƱ¤¸¤Ç¤¢¤ë¡£

volatile »ØÄêÉÕ¤­¤Î asm Ì¿Îá¤Ç¤¢¤Ã¤Æ¤â¡¢GCC ¤Ë¤È¤Ã¤Æ°ã¤¤¤¬¤Ê¤¤¤È¸«¤ì¤Ð¡¢Î㤨¤Ð¥¸¥ã¥ó¥×Ì¿Îá¤ò¤Þ¤¿¤°¤È¤¤¤Ã¤¿¤è¤¦¤Ê°Üư¤â¹Ô¤ï¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤ÇÃí°Õ¤·¤ÆÍߤ·¤¤¡£´øÈ¯À­ asm Ì¿Îá¤ÎÎ󤬤½¤Î¤Þ¤ÞϢ³¤ËÊݤ¿¤ì¤ë¤È´üÂÔ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£½ÐÎϤ¬Ï¢Â³¤Ë¤Ê¤Ã¤ÆÍߤ·¤±¤ì¤Ð¡¢°ì¸Ä¤Î asm ʸ¤ò»È¤¦¤³¤È¤Ç¤¢¤ë¡£

¥¢¥»¥ó¥Ö¥éÌ¿Îá¤Ç»Ä¤µ¤ì¤¿¾ò·ï¥³¡¼¥É¤ò¥¢¥¯¥»¥¹¤¹¤ëÊýË¡¤òõ¤½¤¦¤È路¤â»×¤¦¤À¤í¤¦¡£¤À¤¬¡¢¤½¤ì¤ò¼ÂÁõ¤·¤è¤¦¤È¤¹¤ë¤È¡¢¿®Íê¤Ç¤­¤ëÊýË¡¤¬¤Ê¤¤¤³¤È¤¬¤ï¤«¤Ã¤¿¡£ÌäÂê¤Ï¡¢½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤ÏºÆ¥í¡¼¥É¤òɬÍפȤ¹¤ë¤³¤È¤¬¤¢¤ê¡¢¤½¤ì¤Ë¤Ï¥¹¥È¥¢Ì¿Îá¤ò³¤±¤ëɬÍפ¬½Ð¤Æ¤¯¤ë¡£¤Û¤È¤ó¤É¤Îµ¡¼ï¤Ç¤Ï¤³¤ì¤é¤ÎÌ¿Îá¤Ë¤è¤ê¡¢Ãͤò¸¡ºº¤¹¤ëÁ°¤Ë¾ò·ï¥³¡¼¥É¤òÊѤ¨¤Æ¤·¤Þ¤¦¤È¤¤¤¦¤³¤È¤Ë¤¢¤ë¡£¤³¤ÎÌäÂê¤Ï¡¢Ä̾ï¤Î¡Ö¥Æ¥¹¥È¡×Ì¿Îá¤È¡ÖÈæ³Ó¡×Ì¿Îá¤Ç¤Ïµ¯¤­¤Ê¤¤¡£¤³¤ì¤é¤ÎÌ¿Îá¤Ë¤Ï½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤¬¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

ANSI C ¤Î¥×¥í¥°¥é¥à¤«¤é¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢asm ¤ÎÂå¤ï¤ê¤Ë __asm__ ¤È½ñ¤¯¤è¤¦¤Ë¤¹¤ë¡£See Alternate Keywords¡£

i386 ÉâÆ°¾®¿ôÅÀ asm ¥ª¥Ú¥é¥ó¥É

¥¹¥¿¥Ã¥¯¾õ¤Î¥ì¥¸¥¹¥¿¤ò asm ¤Î¥ª¥Ú¥é¥ó¥É¤Ç»È¤¦¤Ë¤Ï´ö¤Ä¤«µ¬Â§¤¬¤¢¤ë¡£¤³¤ì¤é¤Îµ¬Â§¤Ï¡¢¥¹¥¿¥Ã¥¯¾õ¥ì¥¸¥¹¥¿¤Ç¤¢¤ë¥ª¥Ú¥é¥ó¥É¤Ë¤Î¤ßŬÍѤµ¤ì¤ë¡£

  1. asm_operands Ãæ¤Ç»à¤ÌÆþÎϥ쥸¥¹¥¿¤ÎÁȤ¬Í¿¤¨¤é¤ì¤¿¾ì¹ç¡¢¤É¤ì¤¬ asm ʸ¤Ë¤è¤ê°ÅÌۤ˥ݥåפµ¤ì¤Æ¡¢¤É¤ì¤¬ GCC ¤ÇÌÀ¼¨Åª¤Ë¥Ý¥Ã¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤òÃΤëɬÍפ¬¤¢¤ë¡£

    asm ʸ¤Ë¤è¤ê°ÅÌۤ˥ݥåפµ¤ì¤ëÆþÎÏk¥ì¥¸¥¹¥¿¤Ï¡¢½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Ë¥Þ¥Ã¥Á¤¹¤ë¤è¤¦¤ËÀ©Ì󤬲ݤµ¤ì¤Æ¤¤¤Ê¤¤¸Â¤ê¡¢ÌÀ¼¨Åª¤ËÇ˲õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

  2. asm ʸ¤Ë¤è¤ê°ÅÌۤ˥ݥåפµ¤ì¤ëǤ°Õ¤ÎÆþÎϥ쥸¥¹¥¿¤Ë¤Ä¤¤¤Æ¡¢¥Ý¥Ã¥×¤·¤¿Ê¬¤òÊä½þ¤¹¤ë¤¿¤á¤Ë¥¹¥¿¥Ã¥¯¤ò¤É¤¦¤ä¤Ã¤ÆÄ´À°¤¹¤ë¤«¤òÃΤëɬÍפ¬¤¢¤ë¡£¥Ý¥Ã¥×¤µ¤ì¤Ê¤¤ÆþÎϥ쥸¥¹¥¿¤Î¤É¤ì¤«¤¬¡¢°ÅÌۤ˥ݥåפµ¤ì¤ë¥ì¥¸¥¹¥¿¤è¤ê¤â¥ì¥¸¥¹¥¿¥¹¥¿¥Ã¥¯¤ÎºÇ¾å°Ì¤Ë¶á¤¤¾ì¹ç¡¢¥¹¥¿¥Ã¥¯¤¬¤É¤Î¤è¤¦¤Ë¸«¤¨¤ë¤«¤òÃΤë¤Î¤Ï²Äǽ¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¡£¥¹¥¿¥Ã¥¯¤Î»Ä¤ê¤ÎÉôʬ¤¬¤É¤Î¤è¤¦¤Ë¡Ö¾å²¼¡×¤¹¤ë¤Î¤«ÌÀ¤é¤«¤Ç¤Ê¤¤¤Î¤Ç¤¢¤ë¡£

    °ÅÌۤ˥ݥåפµ¤ì¤ëÆþÎϥ쥸¥¹¥¿¤ÏÁ´¤Æ¡¢°ÅÌۤ˥ݥåפµ¤ì¤Ê¤¤¤É¤ÎÆþÎϥ쥸¥¹¥¿¤è¤ê¤â¥ì¥¸¥¹¥¿¥¹¥¿¥Ã¥¯¤ÎºÇ¾å¤Ë¶á¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ç¤¢¤ë¡£

    ¤¢¤ëÆþÎϤ¬ insn ¤ÎÃæ¤Ç»à¤Ì¤Î¤Ç¤¢¤ì¤Ð¡¢ºÆ¥í¡¼¥É¤Ç¤½¤ÎÆþÎϥ쥸¥¹¥¿¤ò½ÐÎÏºÆ¥í¡¼¥ÉÍѤ˻ȤäƤâÎɤ¤¡£¼¡¤ÎÎã¤ò¹Í¤¨¤Æ¤ß¤è¤¦¡£

    asm ("foo" : "=t" (a) : "f" (b));
    

    ¤³¤Î asm ʸ¤Ï¡¢ÆþÎÏ B ¤¬ asm ¤Ë¤è¤ê¥Ý¥Ã¥×¤µ¤ì¤Ê¤¤¤³¤È¡¢asm ¤¬·ë²Ì¤ò¥ì¥¸¥¹¥¿¡¦¥¹¥¿¥Ã¥¯¤Ë¥×¥Ã¥·¥å¤¹¤ë¡¢¤¹¤Ê¤ï¤Á¡¢¥¹¥¿¥Ã¥¯¤¬Á°¤è¤ê°ìÃÊ¿¼¤¯¤Ê¤ë¤È¤¤¤¦¤³¤È¤ò¸À¤Ã¤Æ¤¤¤ë¡£¤·¤«¤·¡¢ÆþÎÏ B ¤¬¤³¤Î insn ¤Ç»à¤Ì¤Î¤Ç¤¢¤ì¤Ð¡¢ºÆ¥í¡¼¥É¤Ï¡¢ÆþÎϤȽÐÎÏ¤ËÆ±¤¸¥ì¥¸¥¹¥¿¤ò»È¤¦¤³¤È¤¬½ÐÍè¤ë¤È¹Í¤¨¤ë¤À¤í¤¦¡£

    ÆþÎÏ¥ª¥Ú¥é¥ó¥É¤Î¤É¤ì¤«¤¬À©Ìó f ¤ò»È¤Ã¤Æ¤¤¤ì¤Ð¡¢Á´¤Æ¤Î½ÐÎϥ쥸¥¹¥¿¤ÎÀ©Ìó¤ÏÁá´üÇ˲õ & ¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

    ¾å¤Î asm ¤Ï°Ê²¼¤Î¤è¤¦¤Ë½ñ¤±¤ë¡£

    asm ("foo" : "=&t" (a) : "f" (b));
    

  3. ¥ª¥Ú¥é¥ó¥É¤Î´ö¤Ä¤«¤Ï¡¢¥¹¥¿¥Ã¥¯¾å¤ÎÆÃÄê¤Î°ÌÃ֤ˤ¢¤ëɬÍפ¬¤¢¤ë¡£½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤ÏÁ´¤Æ¤³¤Î¥«¥Æ¥´¥ê¤ËÆþ¤ë¡£¥æ¡¼¥¶¤¬À©Ìó¤Ç»Ø¼¨¤·¤Ê¤¤¸Â¤ê¡¢¤É¤Î¥ì¥¸¥¹¥¿¤Ë½ÐÎϤ¬¸½¤ì¤ë¤«ÃΤëÊýË¡¤¬¤Ê¤¤¤Î¤Ç¤¢¤ë¡£

    ½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Ï¡¢asm ¤Î¸å¤Ç½ÐÎϤ¬¤É¤Î¥ì¥¸¥¹¥¿¤Ë¸½¤ì¤ë¤«¤ò¤Ï¤Ã¤­¤ê¤È»Ø¼¨¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£=f ¤Ïµö¤µ¤ì¤Ê¤¤¡£¤³¤Î¥ª¥Ú¥é¥ó¥ÉÀ©Ìó¤Ï°ì¸Ä¤Î¥ì¥¸¥¹¥¿¤«¤é¤Ê¤ë¥¯¥é¥¹¤òÁªÂò¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

  4. ½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Ï¡¢Â¸ºß¤¹¤ë¥¹¥¿¥Ã¥¯¥ì¥¸¥¹¥¿¤Î´Ö¤Ë¡ÖÁÞÆþ¡×¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£387 ¤Î¥ª¥Ú¥³¡¼¥É¤ÇÆÉ¤ß½ñ¤­¥ª¥Ú¥é¥ó¥É¤ò»È¤Ã¤Æ¤¤¤ë¤â¤Î¤Ï¤Ê¤¤¤Î¤Ç¡¢Á´¤Æ¤Î½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Ï asm_operands ¤ÎÁ°¤Ç»à¤ó¤Ç¤ª¤ê¡¢asm_operands ¤Ë¤è¤ê¥×¥Ã¥·¥å¤µ¤ì¤ë¡£¥ì¥¸¥¹¥¿¥¹¥¿¥Ã¥¯¤Î°ìÈÖ¾å°Ê³°¤Î¾ì½ê¤Ë¥×¥Ã¥·¥å¤¹¤ë¤Î¤Ï°ÕÌ£¤¬¤Ê¤¤¡£

    ½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Ï¥ì¥¸¥¹¥¿¥¹¥¿¥Ã¥¯¤Î°ìÈ־夫¤é»Ï¤Þ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤Ï¥ì¥¸¥¹¥¿¤ò¡Ö¥¹¥­¥Ã¥×¡×¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£

  5. asm ʸ¤ÎÃæ¤Ë¤Ï¡¢ÆâÉôŪ¤Ê·×»»¤Î¤¿¤á¤Ë¥¹¥¿¥Ã¥¯¥¹¥Ú¡¼¥¹¤ò;ʬ¤ËɬÍפȤ¹¤ë¤â¤Î¤¬¤¢¤ë¡£¤³¤ì¤Ï¡¢ÆþÎϤȽÐÎϤ˴ط¸¤Î¤Ê¤¤¥¹¥¿¥Ã¥¯¥ì¥¸¥¹¥¿¤òÇ˲õ¤¹¤ë¤³¤È¤Ë¤è¤êÊݾڤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

°Ê²¼¤Ë¡¢½ñ¤¯¤Î¤¬ÂÅÅö¤È»×¤ï¤ì¤ë asm ʸ¤ò2,3¼¨¤¹¡£¼¡¤Î asm ʸ¤ÏÆþÎϤò°ì¤Ä¼è¤ê¡¢¤³¤ÎÆþÎÏ¤ÏÆâÉôŪ¤Ë¥Ý¥Ã¥×¤µ¤ì¤ë¡£¤½¤·¤Æ¡¢½ÐÎϤòÆó¤ÄÀ¸À®¤¹¤ë¡£

asm ("fsincos" : "=t" (cos), "=u" (sin) : "0" (inp));

¼¡¤Î asm ʸ¤Ï¡¢Æó¤Ä¤ÎÆþÎϤò¼è¤ë¡£¤³¤ì¤é¤Ï¡¢¥ª¥Ú¥³¡¼¥É fyl2xp1 ¤Ë¤è¤ê¥Ý¥Ã¥×¤µ¤ì¡¢°ì¤Ä¤Î½ÐÎϤËÃÖ¤­´¹¤¨¤é¤ì¤ë¡£¥æ¡¼¥¶¤Ï¡¢reg-stack.c ¤¬ fyl2xpl ¤¬Î¾Êý¤ÎÆþÎϤò¥Ý¥Ã¥×¤¹¤ë¤È¤¤¤¦¤³¤È¤¬È½¤ë¤è¤¦¤ËÇ˲õ»ØÄê st(1) ¤ò½ñ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

asm ("fyl2xp1" : "=t" (result) : "0" (x), "u" (y) : "st(1)");


Node:Asm Labels, Next:, Previous:Extended Asm, Up:C Extensions

¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤Ç»ÈÍѤµ¤ì¤ë̾Á°¤ÎÀ©¸æ

C ¤Î´Ø¿ô¤äÊÑ¿ô¤Î¡¢¥¢¥»¥ó¥Ö¥é¥³¡¼¥ÉÃæ¤Ç»È¤ï¤ì¤ë̾Á°¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤ì¤Ë¤Ï¡¢¥­¡¼¥ï¡¼¥É asm(¤Þ¤¿¤Ï__asm__)¤ò°Ê²¼¤Î¤è¤¦¤ËÀë¸À¤Î¸å¤Ë½ñ¤¯¡£

int foo asm ("myfoo") = 2;

¤³¤ì¤Ë¤è¤ê¡¢¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤ÎÃæ¤Ç¡¢ÊÑ¿ô foo ¤ËÂФ·¤Æ»È¤ï¤ì¤ë̾Á°¤Ï¡¢Ä̾ï¤Î _foo ¤Ç¤Ï¤Ê¤¯¡¢myfoo ¤È¤¹¤ë¤³¤È¤ò»ØÄꤹ¤ë¡£

C ¤Î´Ø¿ô¤äÊÑ¿ô¤Î̾Á°¤Ë¤ÏÄ̾異¥ó¥À¡¼¥¹¥³¥¢¤¬Æ¬¤Ë¤Ä¤¯¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Îµ¡Ç½¤Ë¤è¤ê¡¢¥¢¥ó¥À¡¼¥¹¥³¥¢¤¬Æ¬¤Ë¤Ä¤«¤Ê¤¤¡¢¥ê¥ó¥«ÍѤÎ̾Á°¤òÄêµÁ¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£

´Ø¿ô¤ÎÄêµÁ¤Ç¤Ï¡¢asm ¤ò¾å¤Î¤è¤¦¤Ë»È¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤¬¡¢°Ê²¼¤Î¤è¤¦¤Ë¡¢´Ø¿ô¤ÎÀë¸À¤ò¤½¤ÎÄêµÁ¤ÎÁ°¤Ë½ñ¤­¡¢Àë¸À¤Î¸å¤í¤Ë asm ¤ò½ñ¤¯¤³¤È¤ÇƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¡£

extern func () asm ("FUNC");

func (x, y)
     int x, y;
...

»ØÄꤷ¤¿¥¢¥»¥ó¥Ö¥é¤Ç¤Î̾Á°¤¬¡¢²¿¤«Â¾¤Î¥¢¥»¥ó¥Ö¥é¥·¥ó¥Ü¥ë¤È¤Ö¤Ä¤«¤é¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¤Î¤Ï¥æ¡¼¥¶¤ÎÀÕǤ¤Ç¤¢¤ë¡£¤Þ¤¿¡¢¥ì¥¸¥¹¥¿Ì¾¤ò»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤â¤·»È¤¦¤È¡¢Á´¤¯ÉÔÀµ¤Ê¥¢¥»¥ó¥Ö¥é¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë¡£GNU CC ¤Ë¤Ï¡¢ÀÅŪÊÑ¿ô¤ò¥ì¥¸¥¹¥¿¤Ë¥¹¥È¥¢¤¹¤ëǽÎϤϤʤ¤¡£¤ª¤½¤é¤¯¡¢¾­Í褽¤Îµ¡Ç½¤¬Äɲ䵤ì¤ë¤À¤í¤¦¡£


Node:Explicit Reg Vars, Next:, Previous:Asm Labels, Up:C Extensions

»ØÄꤷ¤¿¥ì¥¸¥¹¥¿¤ËÃÖ¤«¤ì¤ëÊÑ¿ô

GNU C ¤Ç¤Ï¡¢2,3 ¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤ò»ØÄꤷ¤¿¥Ï¡¼¥É¥¦¥§¥¢¥ì¥¸¥¹¥¿¤ËÃÖ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£¤Þ¤¿¡¢Ä̾ï¤Î¥ì¥¸¥¹¥¿ÊÑ¿ô¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¤Ù¤­¥ì¥¸¥¹¥¿¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£


Node:Global Reg Vars, Next:, Previous:Explicit Reg Vars, Up:Explicit Reg Vars

¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ÎÄêµÁ

GNU C ¤Ç¤Ï¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

register int *foo asm ("a5");

¤³¤³¤Ç a5 ¤Ï¡¢»ÈÍѤ·¤¿¤¤¥ì¥¸¥¹¥¿Ì¾¤Ç¤¢¤ë¡£¥ì¥¸¥¹¥¿¤Ï¤½¤Îµ¡¼ï¤Ç´Ø¿ô¸Æ¤Ó½Ð¤·¤ÇÂàÈò¡¿Éüµ¢¤µ¤ì¤ë¤â¤Î¤òÁª¤Ö¤è¤¦¤Ë¤·¤Æ¤ª¤¯¤È¡¢¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤ÇÃͤ¬Ç˲õ¤µ¤ì¤ë¤³¤È¤¬¤Ê¤¤¡£

ÅöÁ³¥ì¥¸¥¹¥¿Ì¾¤Ï CPU ¤Ë°Í¸¤¹¤ë¤Î¤Ç¡¢CPU ¥¿¥¤¥×¤Ë±þ¤¸¤Æ¥×¥í¥°¥é¥à¤ò¾ò·ï¤Çʬ¤±¤ëɬÍפ¬¤¢¤ë¡£a5 ¤È¤¤¤¦¥ì¥¸¥¹¥¿¤Ï¡¢68000 ¤Î¾ì¹ç¤Ï¥Ý¥¤¥ó¥¿·¿¤ÎÊÑ¿ô¸þ¤±¤È¤·¤Æ¤Ï¡¢Îɤ¤ÁªÂò¤Ç¤¢¤ë¡£¥ì¥¸¥¹¥¿¥¦¥£¥ó¥É¥¦¤ò»ý¤Äµ¡¼ï¤Î¾ì¹ç¤Ï¡¢¡Ö¥°¥í¡¼¥Ð¥ë¡×¤Ê¥ì¥¸¥¹¥¿¤òÁª¤Ö¤è¤¦¤Ë¤·¡¢´Ø¿ô¸Æ¤Ó½Ð¤·µ¡¹½¤Ë¤è¤ê±Æ¶Á¤ò¼õ¤±¤Ê¤¤¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£

¤µ¤é¤Ë¡¢Æ±¤¸ CPU ¥¿¥¤¥×¤Ç¤â¤½¤Î¾å¤Çưºî¤¹¤ë OS ¤Ë¤è¤Ã¤Æ¤Ï¡¢¥ì¥¸¥¹¥¿¤Î¸Æ¤ÓÊý¤¬°ã¤¦¾ì¹ç¤¬¤¢¤ë¡£¤½¤Î¾ì¹ç¤Ï¤µ¤é¤Ë¾ì¹ç¤ï¤±¤¬É¬Íפˤʤ롣Î㤨¤Ð¡¢68000 ¤Çưºî¤¹¤ë OS ¤ÎÃæ¤Ë¤Ï¾åµ­¤ÎÎã¤Î¥ì¥¸¥¹¥¿¤ò%a5 ¤È¸Æ¤Ö¤â¤Î¤â¤¢¤ë¡£

¾­ÍèŪ¤Ë¤Ï¥³¥ó¥Ñ¥¤¥é¤Ë¼«Æ°Åª¤Ë¥ì¥¸¥¹¥¿¤òÁª¤Ö¤è¤¦¤Ë»Ø¼¨¤¹¤ë¼êÃʤ¬¤¢¤Ã¤ÆÎɤ¤¤À¤í¤¦¤¬¡¢¤Þ¤º¡¢¤É¤Î¤è¤¦¤Ë¤·¤ÆÁªÂò¤¹¤Ù¤­¤«¡¢¤½¤·¤Æ¤½¤ÎÁªÂò¤òÆÉ¼Ô¤¬ÃΤë¤Ë¤Ï¤É¤Î¤è¤¦¤Ë¤·¤¿¤éÎɤ¤¤«¤òÌÀ¤é¤«¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ÌÀ¤é¤«¤Ê²ò·è¼êÃʤϤʤ¤¤Î¤Ç¤¢¤ë¡£

¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò¤¢¤ë¥ì¥¸¥¹¥¿¤Ë³ä¤êÅö¤Æ¤ë¤È¡¢¾¯¤Ê¤¯¤È¤â¥³¥ó¥Ñ¥¤¥ëñ°ÌÆâ¤Ç¤Ï¡¢¤½¤Î¥ì¥¸¥¹¥¿¤Ï¤½¤ÎÌÜŪ¤Ë¤À¤±»È¤ï¤ì¤ë¡£¸½ºß¤Î¥³¥ó¥Ñ¥¤¥ëñ°ÌÆâ¤Î´Ø¿ô¤Ç¤Ï¡¢Â¾¤ÎÍÑÅӤˤ½¤Î¥ì¥¸¥¹¥¿¤¬³ä¤êÅö¤Æ¤é¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£¤Þ¤¿¡¢¤³¤Î¥³¥ó¥Ñ¥¤¥ëñ°ÌÆâ¤Î´Ø¿ô¤ÇÂàÈò¡¿Éüµ¢¤µ¤ì¤ë¤³¤È¤â¤Ê¤¤¡£¤³¤Î¥ì¥¸¥¹¥¿¤Ø¤Î³ÊǼ¤Ï¡¢»à¤ó¤Ç¤¤¤ë¤è¤¦¤Ë¸«¤¨¤Æ¤â·è¤·¤Æºï½ü¤µ¤ì¤Ê¤¤¤¬¡¢»²¾È¤Ïºï½ü¤µ¤ì¤¿¤ê¡¢°Üư¤µ¤ì¤¿¤ê¡¢´ÊÁDz½¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ä¡¢°ì¤Ä°Ê¾å¤ÎÀ©¸æ¥¹¥ì¥Ã¥É¤«¤é¥¢¥¯¥»¥¹¤¹¤ë¤Î¤Ï°ÂÁ´¤Ç¤Ï¤Ê¤¤¡£¤È¤¤¤¦¤Î¤Ï¡¢¥·¥¹¥Æ¥à¤Î¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤¬¤½¤Î¥ì¥¸¥¹¥¿¤òÊ̤ÎÌÜŪ¤Ç°ì»þŪ¤Ë»È¤¦²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£(¥·¥¹¥Æ¥à¤Î¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤ò¤½¤ÎÌÜŪ¤Î¤¿¤á¤ËÆÃÊ̤˥³¥ó¥Ñ¥¤¥ë¤·Ä¾¤»¤Ð¤½¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤¤¬¡£)

¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò»È¤Ã¤Æ¤¤¤ë´Ø¿ô¤¬¡¢Ê̤Τä¤Ï¤ê¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò»È¤Ã¤Æ¤¤¤ë´Ø¿ô foo ¤ò¡¢¤³¤ÎÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó̵¤·¤Ë(Î㤨¤Ð¡¢¤³¤ÎÊÑ¿ô¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤Ê̤Υ½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¤¢¤ëÅù) ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿»°ÈÖÌܤδؿô lose ¤ò·Ðͳ¤·¤Æ¸Æ¤Ó½Ð¤¹¤Î¤Ï´í¸±¤Ç¤¢¤ë¡£¤³¤ì¤Ï¡¢lose ¤¬¤½¤Î¥ì¥¸¥¹¥¿¤ò¥»¡¼¥Ö¤·¤¿¾å¤Ç²¿¤«Â¾¤ÎÃͤòÃÖ¤¯²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢qsort ¤ËÅϤ¹Èæ³Ó´Ø¿ô¤ÎÃæ¤Ç¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò»È¤¨¤ë¤È»×¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£qsort ¤¬¡¢²¿¤«Â¾¤Î¤â¤Î¤ò¤½¤Î¥ì¥¸¥¹¥¿¤ËÃÖ¤¯²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£(qsort ¤òƱ¤¸¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò»È¤¦¤è¤¦¤ËºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð¡¢¤³¤ÎÌäÂê¤Ï²ò¾Ã¤¹¤ë¡£)

qsort ¤ä¾¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¡¢¼ÂºÝ¤Ë¤Ï¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò»È¤Ã¤Æ¤¤¤Ê¤¤¤â¤Î¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¡¢¤½¤Î¥ì¥¸¥¹¥¿¤ò¾¤ÎÌÜŪ¤Ë¤Ï»È¤ï¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤±¤ì¤Ð¡¢-ffixed-reg ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ì¤Ð½¼Ê¬¤Ç¤¢¤ë¡£¼ÂºÝ¤Ë¥½¡¼¥¹¥³¡¼¥É¤Ë¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿¤ÎÀë¸À¤òÄɲ乤ëɬÍפϤʤ¤¡£

¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ÎÃͤòÊѤ¨ÆÀ¤ë´Ø¿ô¤Ï¡¢¤³¤ÎÊÑ¿ô¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿´Ø¿ô¤«¤é¤Ï°ÂÁ´¤Ë¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¸Æ½Ð¤·Â¦¤¬Ìá¤êÃͤò¸«¤Ä¤±¤ë¾ì½ê¤Ë¤¢¤ëÃͤò½ñ¤­´¹¤¨¤ë²ÄǽÀ­¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò»È¤Ã¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ÎÅÓÃæ¤Ø¤ÎÆþ¤ê¸ýÅÀ¤È¤Ê¤ë´Ø¿ô¤Ï¡¢¸Æ½Ð¤·Â¦¤Ë½ê°¤¹¤ëÃͤòÌÀ¼¨Åª¤Ë¥»¡¼¥Ö¡¿¥ê¥¹¥È¥¢¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¤Û¤È¤ó¤É¤Îµ¡¼ï¤Ç¤Ï¡¢longjmp ¤Ï¡¢³Æ¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤Ë¡¢¤½¤ì¤é¤ÎÊÑ¿ô¤Î setjmp ¤Î»þÅÀ¤Ç¤ÎÃͤò¥ê¥¹¥È¥¢¤¹¤ë¡£¤·¤«¤·¡¢Ãæ¤Ë¤Ï longjmp ¤¬¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ÎÃͤòÊѤ¨¤Ê¤¤µ¡¼ï¤â¤¢¤ë¡£°Ü¿¢À­¤òÎɤ¯¤¹¤ë¤¿¤á¤Ë¤Ï¡¢setjmp ¤ò¸Æ¤Ó½Ð¤¹´Ø¿ô¤Ï¡¢¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò¥»¡¼¥Ö¤·¡¢longjmp ¤ÎÃæ¤Ç¤½¤ì¤é¤ò¥ê¥¹¥È¥¢¤¹¤ë¤è¤¦¤ËÄ´À°¤ò¹Ô¤Ê¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤¦¤·¤Æ¤ª¤±¤Ð¡¢longjmp ¤¬²¿¤ò¤¹¤ë¤«¤Ë´Ø¤ï¤é¤ºÆ±¤¸Æ°ºî¤¬´üÂԤǤ­¤ë¡£

Á´¤Æ¤Î¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ÎÀë¸À¤Ï¡¢Á´¤Æ¤Î´Ø¿ôÄêµÁ¤ÎÁ°¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤â¤·¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤ÎÀë¸À¤¬´Ø¿ôÄêµÁ¤Î¸å¤Ë¸½¤ì¤Æ¤â¡¢¤½¤ÎÀë¸À¤Ç¤ÏÀè¹Ô¤¹¤ë´Ø¿ô¤Ç¤½¤Î¥ì¥¸¥¹¥¿¤¬Ê̤ÎÌÜŪ¤Ç»È¤ï¤ì¤ë¤Î¤òËɤ°¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£

¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤Ï½é´üÃͤò»ý¤Ä¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¼Â¹Ô·Á¼°¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥ì¥¸¥¹¥¿¤Î½é´üÆâÍÆ¤òÄ󶡤¹¤ëÊýË¡¤¬¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£

SPARC ¤Ç¤Ï¡¢g3 ¡Á g7 ¤¬¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿¤ËŬ¤·¤Æ¤¤¤ë¤È¤ÎÊó¹ð¤¬¤¢¤ë¡£¤¿¤À¤·¡¢´ö¤Ä¤«¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¡¢Î㤨¤Ð¡¢getwd ¤ä¡¢½ü»»¤È¾ê;»»¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï g3 ¤È g4 ¤ò½¤Àµ¤¹¤ë¡£g1 ¤È g2 ¤Ï¥í¡¼¥«¥ë¤Î°ì»þ¥ì¥¸¥¹¥¿¤Ç¤¢¤ë¡£

68000 ¤Ç¤Ï¡¢a2 ¡Á a5 ¤È d2 ¡Á d7 ¤¬Å¬¤·¤Æ¤¤¤ë¡£ÅöÁ³¤Ê¤¬¤é¡¢¤³¤ì¤é¤Î¤¦¤Á¤Î 2,3¸Ä¤Ç¤Ï¤Ê¤¯¡¢¤â¤Ã¤È¤¿¤¯¤µ¤ó»È¤¦¤Î¤ÏŬ¤·¤Æ¤¤¤Ê¤¤¡£


Node:Local Reg Vars, Previous:Global Reg Vars, Up:Explicit Reg Vars

¥í¡¼¥«¥ëÊÑ¿ô¤Ë¥ì¥¸¥¹¥¿¤ò»ØÄꤹ¤ë¤Ë¤Ï

¥í¡¼¥«¥ë¤Î¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò¡¢°Ê²¼¤Î¤è¤¦¤Ë¥ì¥¸¥¹¥¿¤ò»ØÄꤷ¤ÆÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

register int *foo asm ("a5");

¤³¤³¤Ç a5 ¤Ï»È¤ï¤ì¤ë¤Ù¤­¥ì¥¸¥¹¥¿Ì¾¤Ç¤¢¤ë¡£¤³¤Î½ñ¤­Êý¤Ï¡¢¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤òÄêµÁ¤¹¤ë¾ì¹ç¤ÈƱ¤¸¤À¤¬¡¢¥í¡¼¥«¥ëÊÑ¿ô¤Î¾ì¹ç¤Ï´Ø¿ôÆâ¤Ë¸½¤ì¤ë¤³¤È¤ËÃí°Õ¡£

ÉáÄÌ¡¢¥ì¥¸¥¹¥¿Ì¾¤Ï CPU ¤Ë°Í¸¤¹¤ë¤¬¡¢¤³¤ì¤ÏÌäÂê¤Ç¤Ï¤Ê¤¤¡£ÆÃÄê¤Î¥ì¥¸¥¹¥¿¤ÏÌÀ¼¨Åª¤Ê¥¢¥»¥ó¥Ö¥éÌ¿Îá¤ÇÌò¤ËΩ¤Ä¤³¤È¤¬Â¿¤¤¤«¤é¤Ç¤¢¤ë(see Extended Asm)¡£¤³¤ì¤é¤Î¤É¤Á¤é¤â°ìÈÌ¤Ë CPU ·¿¤Ë±þ¤¸¤Æ¥×¥í¥°¥é¥à¤ò¾ò·ïÀá¤Ç¾ì¹çʬ¤±¤¹¤ëɬÍפ¬¤¢¤ë¡£

¤µ¤é¤Ë¡¢°ì¤Ä¤Î CPU ¥¿¥¤¥×¤Çưºî¤¹¤ë¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤¬Ê£¿ô¤¢¤ë¾ì¹ç¤Ï¡¢¥ì¥¸¥¹¥¿¤Î»ØÄêË¡¤¬°ã¤¦²ÄǽÀ­¤¬¤¢¤ë¡£Î㤨¤Ð¡¢´ö¤Ä¤«¤Î 68000 ¾å¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¾åµ­¤Î¥ì¥¸¥¹¥¿¤ò %a5 ¤ÈÆÉ¤ó¤Ç¤¤¤ë¡£

¥ì¥¸¥¹¥¿ÊÑ¿ô¤ò¤³¤Î¤è¤¦¤ËÄêµÁ¤·¤Æ¤â¡¢»ØÄꤵ¤ì¤¿¥ì¥¸¥¹¥¿¤òͽÌ󤹤뤳¤È¤Ï¤Ê¤¤¡£¥Õ¥í¡¼À©¸æ¤Ë¤è¤ê¤³¤Î¥ì¥¸¥¹¥¿ÊÑ¿ô¤ÎÃͤ¬À¸¤­¤Æ¤¤¤Ê¤¤¤Èʬ¤«¤Ã¤¿¾ì½ê¤Ç¡¢Â¾¤ÎÌÜŪ¤Ë»È¤¦¤³¤È¤Ï°ÍÁ³¤È¤·¤Æ²Äǽ¤Ç¤¢¤ë¡£¤À¤¬¡¢¤³¤ì¤é¤Î¥ì¥¸¥¹¥¿¤Ï¥ê¥í¡¼¥É¥Ñ¥¹¤ÇÍøÍѤǤ­¤Ê¤¯¤Ê¤ë¡£¤³¤Îµ¡Ç½¤ò»È¤¤²á¤®¤ë¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬´Ø¿ô¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤Î¤Ë»È¤¨¤ë¥ì¥¸¥¹¥¿¤¬Â­¤ê¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£

¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¤³¤Î¥ì¥¸¥¹¥¿ÊÑ¿ô¤¬¡¢¥æ¡¼¥¶¤¬»ØÄꤷ¤¿¥ì¥¸¥¹¥¿¤Ë¤¤¤Ä¤Ç¤âÆþ¤ë¤è¤¦¤Ê¥³¡¼¥É¤ò GNU CC ¤¬À¸À®¤¹¤ë¤³¤È¤òÊݾڤ¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£asm ʸ¤Ç¤³¤Î¥ì¥¸¥¹¥¿¤òÌÀ¼¨Åª¤Ë»²¾È¤¹¤ë¥³¡¼¥É¤ò½ñ¤¤¤Æ¡¢¤½¤ì¤¬¾ï¤Ë¤³¤ÎÊÑ¿ô¤ò»Ø¤¹¤È²¾Äꤷ¤Æ¤Ï¤¤¤±¤Ê¤¤¡£

¶É½ê¥ì¥¸¥¹¥¿ÊÑ¿ô¤Ø¤Î³ÊǼ¤Ï¡¢¥Ç¡¼¥¿Î®²òÀϤ˽¾¤¦¤È»à¤ó¤Ç¤¤¤ë¤è¤¦¤Ç¤¢¤ì¤Ð¡¢ºï½ü¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£¶É½ê¥ì¥¸¥¹¥¿ÊÑ¿ô¤Ø¤Î»²¾È¤Ï¡¢ºï½ü¤µ¤ì¤¿¤ê¡¢°Üư¤µ¤ì¤¿¤ê¡¢Ã±½ã²½¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£


Node:Alternate Keywords, Next:, Previous:Explicit Reg Vars, Up:C Extensions

¤â¤¦°ìÁȤΥ­¡¼¥ï¡¼¥É

-traditional ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ÆÃÄê¤Î¥­¡¼¥ï¡¼¥É¤ò¤¤¤¯¤Ä¤«Ìµ¸ú¤Ë¤¹¤ë¡£-ansi ¤ò»ØÄꤹ¤ë¤È¡¢¤½¤Î¾¤Î¥­¡¼¥ï¡¼¥É¤ò¤¤¤¯¤Ä¤«Ìµ¸ú¤Ë¤¹¤ë¡£¤³¤ì¤Ï¡¢GNU C ¤Î³ÈÄ¥¤ä ANSI C ¤Îµ¡Ç½¤ò¡¢ANSI C ¤Î¥×¥í¥°¥é¥à¤ÈµìÍè¤Î C ¤Î¥×¥í¥°¥é¥à¤ò´Þ¤àÁ´¤Æ¤Î¥×¥í¥°¥é¥à¤Ç»È¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¢ÈÆÍѤΥإåÀ¥Õ¥¡¥¤¥ë¤Ç»È¤¤¤¿¤¤¾ì¹ç¤ËÌäÂê¤Ë¤Ê¤ë¡£¤½¤Î¾ì¹ç¡¢¥­¡¼¥ï¡¼¥Éasm¡¢typeof¡¢inline ¤Ï -ansi ¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ïưºî¤·¤Ê¤¤¤Î¤Ç»È¤¨¤Ê¤¤¡£°ìÊý¡¢¥­¡¼¥ï¡¼¥É const¡¢volatile¡¢signed¡¢typeof¡¢inline ¤Ï¡¢-traditional ¤ò»ØÄꤷ¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥×¥í¥°¥é¥à¤Çưºî¤·¤Ê¤¤¡£

¤³¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤Ë¤Ï¡¢ÌäÂê¤È¤Ê¤ë³Æ¥­¡¼¥ï¡¼¥É¤ÎƬ¤Ë __ ¤òÉÕ¤±¤ì¤ÐÎɤ¤¡£Î㤨¤Ð¡¢asm ¤ÎÂå¤ï¤ê¤Ë __asm__ ¤ò¡¢const ¤ÎÂå¤ï¤ê¤Ë __const__ ¤ò¡¢inline ¤ÎÂå¤ï¤ê¤Ë __inline__ ¤ò»È¤¦¡£

¾¤Î C ¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤ì¤é¤ÎÂåÂØ¥­¡¼¥ï¡¼¥É¤ò¼õ¤±ÉÕ¤±¤Ê¤¤¤Î¤Ç¡¢Ê̤Υ³¥ó¥Ñ¥¤¥é¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ÂåÂØ¥­¡¼¥ï¡¼¥É¤ò¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤·¡¢Ä̾ï¤Î¥­¡¼¥ï¡¼¥É¤ËÃÖ¤­Âå¤ï¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤ì¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£

#ifndef __GNUC__
#define __asm__ asm
#endif

-pedantic ¤Ï¡¢GNU C ¤Î³ÈÄ¥¤Î¿¤¯¤Ë·Ù¹ð¤ò½Ð¤¹¡£¤½¤¦¤¤¤¦·Ù¹ð¤Î¤¦¤Á¡¢°ì¤Ä¤Î¼°¤ÎÃæ¤Ë¼ý¤Þ¤Ã¤Æ¤¤¤ë¤â¤Î¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤Î¼°¤ÎÁ°¤Ë __extension__ ¤ò½ñ¤¯¤³¤È¤Ç¡¢½Ð¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£__extension__ ¤Ë¤Ï¡¢¤³¤ì°Ê³°¤Î¸ú²Ì¤Ï¤Ê¤¤¡£


Node:Incomplete Enums, Next:, Previous:Alternate Keywords, Up:C Extensions

ÉÔ´°Á´¤Ê enum ·¿

enum ¤Î¥¿¥°¤ò¡¢²Äǽ¤ÊÃͤò»ØÄꤹ¤ë¤³¤È¤Ê¤·¤ËÄêµÁ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£¤³¤ì¤ÏÉÔ´°Á´·¿¤òÀ¸¤¸¤ë¤¬¡¢struct foo ¤òÍ×ÁǤòµ­½Ò¤¹¤ë¤³¤È̵¤·¤Ë½ñ¤¤¤¿¾ì¹ç¤È¤Û¤È¤ó¤ÉƱ¤¸¤è¤¦¤Ê·ë²Ì¤Ë¤Ê¤ë¡£¸å¤ÎÀë¸À¤Ç¡¢²Äǽ¤ÊÃͤò»ØÄꤹ¤ì¤Ð´°Á´¤Ê·¿¤È¤Ê¤ë¡£

·¿¤¬ÉÔ´°Á´¤Ç¤¢¤ë´Ö¤Ï¡¢¤½¤Î·¿¤ò»È¤Ã¤ÆÊÑ¿ô¤äµ­²±Îΰè¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤À¤¬¡¢¤½¤Î·¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤Ï²Äǽ¤Ç¤¢¤ë¡£

¤³¤Î³ÈÄ¥¤Ï¤½¤ì¤Û¤ÉÌò¤ËΩ¤Ä¤ï¤±¤Ç¤Ï¤Ê¤¤¤¬¡¢enum ¤Î¼è°·¤¤¤¬¡¢struct ¤ä union ¤Î¼è°·¤¤¤È¤è¤ê°ì´ÓÀ­¤òÊݤƤë¤è¤¦¤Ë¤Ê¤ë¡£

¤³¤Î³ÈÄ¥¤Ï GNU C++ ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤¡£


Node:Function Names, Next:, Previous:Incomplete Enums, Up:C Extensions

ʸ»úÎó¤È¤·¤Æ¤Î´Ø¿ô̾

GNU CC ¤Ï¡¢¸½ºß¤Î´Ø¿ô̾¤òɽ¤¹Ê¸»úÎóÊÑ¿ô¤òÆó¤ÄÁ°¤â¤Ã¤ÆÄêµÁ¤·¤Æ¤¤¤ë¡£ÊÑ¿ô __FUNCTION__ ¤Ï¡¢¥½¡¼¥¹¥³¡¼¥É¤Ë¸½¤ì¤¿Ä̤ê¤Î´Ø¿ô̾¤òɽ¤¹¡£ÊÑ¿ô __PRETTY_FUNCTION__ ¤Ï¡¢¸À¸ì¤Ë¸ÇÍ­¤Î·Á¼°¤ÇÀ°·Á¤·¤¿´Ø¿ô̾¤òɽ¤¹¡£

¤³¤ÎÆó¤Ä¤Ï¡¢C ¸À¸ì¤Î´Ø¿ô¤Ç¤Ï¤¤¤Ä¤Ç¤âƱ¤¸¤Ë¤Ê¤ë¤¬¡¢C++ ¤Î´Ø¿ô¤Ç¤Ï°ã¤Ã¤¿¤â¤Î¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¡£Î㤨¤Ð¡¢

extern "C" {
extern int printf (char *, ...);
}

class a {
 public:
  sub (int i)
    {
      printf ("__FUNCTION__ = %s\n", __FUNCTION__);
      printf ("__PRETTY_FUNCTION__ = %s\n", __PRETTY_FUNCTION__);
    }
};

int
main (void)
{
  a ax;
  ax.sub (0);
  return 0;
}

¤È¤¤¤¦¥×¥í¥°¥é¥à¤Î½ÐÎϤϰʲ¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£

__FUNCTION__ = sub
__PRETTY_FUNCTION__ = int  a::sub (int)

¤³¤ÎÆó¤Ä¤Î̾Á°¤Ï¥Þ¥¯¥í¤Ç¤Ï¤Ê¤¯¤Æ¡¢ÄêµÁºÑ¤Îʸ»úÎóÊÑ¿ô¤Ç¤¢¤ë¡£Î㤨¤Ð¡¢´Ø¿ô¤ÎÃæ¤Ç #ifdef __FUNCTION__ ¤È¤·¤Æ¤â²¿¤âÆÃÊ̤ʰÕÌ£¤Ï»ý¤¿¤Ê¤¤¡£¥×¥ê¥×¥í¥»¥Ã¥µ¤Ï __FUNCTION__ ¤È¤¤¤¦¼±Ê̻ҤˤĤ¤¤Æ²¿¤âÆÃÊ̤ʽèÍý¤ò¹Ô¤Ê¤ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£


Node:Return Address, Next:, Previous:Function Names, Up:C Extensions

´Ø¿ô¤ÎÌá¤ê¥¢¥É¥ì¥¹¤ä¥Õ¥ì¡¼¥à¥¢¥É¥ì¥¹¤òÆÀ¤ë¤Ë¤Ï

°Ê²¼¤Î´Ø¿ô¤ò»È¤Ã¤Æ¡¢´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸µ¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

__builtin_return_address (level)
¤³¤Î´Ø¿ô¤Ï¡¢¸½ºß¤Î´Ø¿ô¤«¡¢¤¢¤ë¤¤¤Ï¤½¤Î¸Æ¤Ó½Ð¤·¸µ´Ø¿ô¤Î¤É¤ì¤«°ì¤Ä¤ÎÌá¤ê¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£°ú¿ô level ¤Ï¡¢¸Æ¤Ó½Ð¤·¥¹¥¿¥Ã¥¯¤òÁöºº¤¹¤Ù¤­¥Õ¥ì¡¼¥à¿ô¤Ç¤¢¤ë¡£¤³¤ÎÃͤ¬ 0 ¤Ç¤¢¤ì¤Ð¡¢¸½ºß¤Î´Ø¿ô¤ÎÌá¤ê¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£¤³¤ÎÃͤ¬ 1 ¤Ç¤¢¤ì¤Ð¡¢¸½ºß¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸µ¤ÎÌá¤ê¤òÊÖ¤¹¡£°Ê²¼Æ±ÍÍ¡£

°ú¿ô level ¤ÏÀ°¿ôÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

µ¡¼ï¤Ë¤è¤Ã¤Æ¤Ï¡¢¸½ºß¤Î´Ø¿ô°Ê³°¤Î´Ø¿ô¤ÎÌá¤ê¥¢¥É¥ì¥¹¤ò·èÄꤹ¤ë¤³¤È¤¬ÉÔ²Äǽ¤Ê¾ì¹ç¤¬¤¢¤ë¡£¤½¤¦¤¤¤¦¾ì¹ç¤ä¡¢¥¹¥¿¥Ã¥¯¤ÎĺÅÀ¤Ë㤷¤¿¤È¤­¤Ï¡¢¤³¤Î´Ø¿ô¤Ï 0 ¤òÊÖ¤¹¡£

¤³¤Î´Ø¿ô¤Ï¡¢¥¼¥í°Ê³°¤Î°ú¿ô¤ò¤Ä¤±¤Æ¥Ç¥Ð¥Ã¥°ÍѤˤΤ߻Ȥ¦¤Ù¤­¤Ç¤¢¤ë¡£

__builtin_frame_address (level)
¤³¤Î´Ø¿ô¤Ï __builtin_return_address ¤Ë»÷¤Æ¤¤¤ë¤¬¡¢´Ø¿ô¤ÎÌá¤ê¥¢¥É¥ì¥¹¤Ç¤Ï¤Ê¤¯¡¢´Ø¿ô¥Õ¥ì¡¼¥à¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£__builtin_frame_address ¤ò°ú¿ôÃͤò 0 ¤È¤·¤Æ¸Æ¤Ó½Ð¤¹¤È¡¢¸½ºß¤Î´Ø¿ô¤Î¥Õ¥ì¡¼¥à¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£1 ¤ò°ú¿ôÃͤȤ¹¤ë¤È¡¢¸½ºß¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸µ´Ø¿ô¤Î¥Õ¥ì¡¼¥à¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£°Ê²¼Æ±ÍÍ¡£

¥Õ¥ì¡¼¥à¤Ï¡¢¥í¡¼¥«¥ëÊÑ¿ô¤ä¥»¡¼¥Ö¤µ¤ì¤¿¥ì¥¸¥¹¥¿¤òÊÝ»ý¤¹¤ë¥¹¥¿¥Ã¥¯¾å¤ÎÎΰè¤Ç¤¢¤ë¡£¥Õ¥ì¡¼¥à¥¢¥É¥ì¥¹¤Ï¡¢ÉáÄ̤ϡ¢¤½¤Î´Ø¿ô¤Ë¤è¤ê¥¹¥¿¥Ã¥¯¤Ë¥×¥Ã¥·¥å¤µ¤ì¤¿ÀèÆ¬¤Î¥ï¡¼¥É¤Î¥¢¥É¥ì¥¹¤Ë¤Ê¤ë¡£¤·¤«¤·¡¢¸·Ì©¤ÊÄêµÁ¤Ï¡¢¥×¥í¥»¥Ã¥µ¤È¸Æ¤Ó½Ð¤·µ¬Ìó¤Ë°Í¸¤¹¤ë¡£¥×¥í¥»¥Ã¥µ¤Ë¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿ÀìÍѥ쥸¥¹¥¿¤¬¤¢¤ì¤Ð¡¢´Ø¿ô¤Ï¥Õ¥ì¡¼¥à¤ò°ì¸Ä»ý¤Á¡¢__builtin_frame_address ¤Ï¡¢¤½¤Î¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¥ì¥¸¥¹¥¿¤ÎÃͤòÊÖ¤¹¡£

__builtin_return_address ¤Ë¤Ä¤¤¤Æ¤ÎÃí°Õ¤¬¡¢¤³¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤âƱÍͤËÅö¤Æ¤Ï¤Þ¤ë¡£


Node:Other Builtins, Next:, Previous:Return Address, Up:C Extensions

GNU CC ¤¬Ä󶡤¹¤ë¤½¤Î¾¤ÎÁȤ߹þ¤ß´Ø¿ô

GNU CC ¤Ï¤³¤ì¤Þ¤Ç¤Ë½Ò¤Ù¤¿°Ê³°¤Ë¤â¤¿¤¯¤µ¤ó¤ÎÁȤ߹þ¤ß´Ø¿ô¤òÄ󶡤·¤Æ¤¤¤ë¡£¤½¤ÎÃæ¤Î´ö¤Ä¤«¤ÏÆâÉô¤Ç»È¤¦ÌÜŪ¤Î¤â¤Î¤¬¤¢¤ê¡¢Îã³°¤ä²ÄÊÑŰú¿ô¥ê¥¹¥È¤Î½èÍý¤Ë»È¤ï¤ì¤ë¡£¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤³¤³¤Ç¤ÏÀâÌÀ¤·¤Ê¤¤¡£ÉÑÈˤËÊѹ¹¤¬¹Ô¤ï¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£¤³¤ì¤é¤Î´Ø¿ô¤ò°ìÈÌŪ¤ÊÌÜŪ¤Ç»ÈÍѤ¹¤ë¤Î¤Ï¤ª´«¤á¤·¤Ê¤¤¡£

¤½¤Î¾¤Î´Ø¿ô¤Ï¡¢ºÇŬ²½ÌÜŪ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£

GNU CC ¤Ë¤Ï¡¢É¸½à C ¥é¥¤¥Ö¥é¥ê¤Ë¤¢¤ë¿¤¯¤Î´Ø¿ô¤ÎÁȤ߹þ¤ßÈǤ¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤é¤Ï¾ï¤Ë¡¢Î㤨 -fno-builtin ¥ª¥×¥·¥ç¥ó(see C Dialect Options)¤ò»ØÄꤷ¤¿¾ì¹ç¤Ç¤â¡¢C ¥é¥¤¥Ö¥é¥ê¤Î´Ø¿ô¤ÈƱ¤¸°ÕÌ£¤ò»ý¤Ä¤â¤Î¤È¤·¤Æ¼è¤ê°·¤ï¤ì¤ë¡£¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢C ¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Î alloca¡¢ffs¡¢abs¡¢fabsf¡¢fabs¡¢fabsl¡¢labs¡¢memcpy¡¢memcmp¡¢strcmp¡¢strcpy¡¢strlen¡¢sqrtf¡¢sqrt¡¢sqrtl¡¢sinf¡¢sin¡¢sinl¡¢cosf¡¢cos¡¢cosl ¤ËÂбþ¤¹¤ë¡£

ÁȤ߹þ¤ß´Ø¿ô __builtin_constant_p ¤ò»È¤¦¤È¡¢¤¢¤ëÃͤ¬¥³¥ó¥Ñ¥¤¥ë»þ¤ËÄê¿ô¤Ç¤¢¤Ã¤¿¤«¤É¤¦¤«¤òÃΤ뤳¤È¤¬¤Ç¤­¡¢¤½¤Î¤¿¤á¡¢GNU CC ¤¬¤½¤ÎÃͤò´Þ¤à¼°¤Ë¤Ä¤¤¤ÆÄê¿ô¾ö¤ß¹þ¤ß¤¬¼Â¹Ô¤Ç¤­¤ë¤«¤òÃΤ뤳¤È¤¬¤Ç¤­¤ë¡£¤³¤Î´Ø¿ô¤Î°ú¿ô¤¬¥Æ¥¹¥È¤¹¤Ù¤­Ãͤˤʤ롣¤³¤Î´Ø¿ô¤Ï¡¢°ú¿ô¤¬¥³¥ó¥Ñ¥¤¥ë»þÄê¿ô¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤Ã¤Æ¤¤¤¿¾ì¹ç¤Ë¤ÏÀ°¿ô 1 ¤òÊÖ¤·¡¢¥³¥ó¥Ñ¥¤¥ë»þÄê¿ô¤Ç¤¢¤Ã¤¿¤³¤È¤¬¤ï¤«¤é¤Ê¤¤¾ì¹ç¤Ë¤ÏÀ°¿ô 0 ¤òÊÖ¤¹¡£0 ¤¬Ê֤äƤ­¤Æ¤â¡¢¤½¤ÎÃͤ¬Äê¿ô¤Ç¤Ê¤«¤Ã¤¿¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£Ã±¤Ë GNU CC ¤¬¡¢-O ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤵ¤ì¤¿ÃͤǤϡ¢Äê¿ô¤Ç¤¢¤ë¤³¤È¤¬¾ÚÌÀ¤Ç¤­¤Ê¤«¤Ã¤¿¤À¤±¤Ç¤¢¤ë¡£

¤³¤Î´Ø¿ô¤¬»È¤ï¤ì¤ëÂåɽŪ¤Ê¾ì¹ç¤Ï¡¢¥á¥â¥ê¤¬½ÅÍפʥ꥽¡¼¥¹¤Ë¤Ê¤ëÁȤ߹þ¤ß¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤¢¤í¤¦¡£²¿¤«Ê£»¨¤Ê·Á»»¼°¤¬¤¢¤Ã¤Æ¡¢¤½¤ì¤¬Äê¿ô¤ò´Þ¤ó¤Ç¤¤¤ì¤ÐÄê¿ô¾ö¤ß¹þ¤ß¤ò¹Ô¤Ã¤ÆÍߤ·¤¤¤À¤í¤¦¤¬¡¢Äê¿ô¤ò´Þ¤Þ¤Ê¤¤¾ì¹ç¤Ï´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¡£Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ê¾ì¹ç¤Ç¤¢¤ë¡£

#define Scale_Value(X)  \
  (__builtin_constant_p (X) ? ((X) * SCALE + OFFSET) : Scale (X))

¤³¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ï¡¢¥Þ¥¯¥í¤ä¥¤¥ó¥é¥¤¥óŸ³«´Ø¿ô¤Ç»È¤Ã¤Æ¤âÎɤ¤¡£¤¿¤À¤·¡¢¥¤¥ó¥é¥¤¥óŸ³«´Ø¿ô¤ÎÃæ¤Ç»È¤Ã¤Æ¡¢¤½¤Î´Ø¿ô¤ËÂФ¹¤ë°ú¿ô¤òÁȤ߹þ¤ß´Ø¿ô¤Ø¤Î°ú¿ô¤È¤·¤ÆÅϤ·¤¿¾ì¹ç¡¢¤½¤Î¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Î°ú¿ô¤Ëʸ»úÎóÄê¿ô¤ä¥³¥ó¥¹¥È¥é¥¯¥¿¼°(see Constructors)¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¤Ï·è¤·¤Æ 1 ¤òÊÖ¤µ¤Ê¤¤¡£¤Þ¤¿¡¢-O ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¸Â¤ê¡¢¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Ë¿ôÃÍÄê¿ô¤òÅϤ·¤¿¤È¤­¤Ï 1 ¤òÊÖ¤µ¤Ê¤¤¡£


Node:Deprecated Features, Previous:Other Builtins, Up:C Extensions

¾Ã¤¨¤¿µ¡Ç½

²áµî¤Ë¤ª¤¤¤Æ¡¢GNU C++ ¥³¥ó¥Ñ¥¤¥é¤Ï¿·¤·¤¤µ¡Ç½¤ò¼Â¸³¤¹¤ë¤¿¤á¤Ë³ÈÄ¥¤¬¤Ê¤µ¤ì¤¿¡£Åö»þ¤Ï C++ ¸À¸ì¤¬¿Ê²½ÅÓ¾å¤À¤Ã¤¿¤Î¤Ç¤¢¤ë¡£¸½ºß¤Ç¤Ï¡¢C++ µ¬³Ê¤¬´°À®¤·¤¿¤Î¤Ç¡¢¤³¤ì¤é¤Î´ö¤Ä¤«¤Îµ¡Ç½¤Ï°Í¤êÎɤ¤Ê̤ε¡Ç½¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Æ¤¤¤ë¡£¸Å¤¤µ¡Ç½¤ò»È¤¦¤È¡¢¤½¤Îµ¡Ç½¤¬¾­Íèºï½ü¤µ¤ì¤ë¤¤¤¯¤Ä¤«¤Î¾ì¹ç¤Ë·Ù¹ð¤¬È¯¤»¤é¤ì¤ë¡£¤½¤Î¾¤Î¾ì¹ç¤Ë¤Ï¡¢µ¡Ç½¤Ï´û¤Ëºï½ü¤µ¤ì¤Æ¤¤¤ë¡£

°Ê²¼¤Î¥ê¥¹¥È¤ÏÁ´¤Æ¤òÌÖÍ夷¤Æ¤¤¤Ê¤¤¤¬¡¢¸½ºß¤Ç¤ÏÇÑ»ßÍ׵᤬½Ð¤Æ¤¤¤ë´ö¤Ä¤«¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤ÆÀâÌÀ¤¹¤ë¡£

-fthis-is-variable
C++ ¤Î½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢this ¤Ø¤ÎÂåÆþ¤ò¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥óÄêµÁ¤Î¥á¥â¥ê³äÅö¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤¿¡£¸½ºß¤Ç¤Ï¡¢³äÅö´Ø¿ô(operator new)¤¬¡¢Æ±¤¸¸ú²Ì¤òÆÀ¤ë¤¿¤á¤Îµ¬³Ê¤ËŬ¤Ã¤¿ÊýË¡¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
-fexternal-templates
-falt-external-templates
¤³¤ì¤é¤Ï¡¢g++ ¤Ç¥Æ¥ó¥×¥ì¡¼¥È¤Î¼ÂÂ⽤ò¼ÂÁõ¤¹¤ë¤¿¤á¤Î¤¿¤¯¤µ¤ó¤ÎÊýË¡¤Î¤¦¤Á¤ÎÆó¤Ä¤Ç¤¢¤ë¡£See Template Instantiation¡£C++ µ¬³Ê¤Ï¡¢¼ÂÁõñ°Ì¤ò±Û¤¨¤Æ¥Æ¥ó¥×¥ì¡¼¥ÈÄêµÁ¤¬¤É¤Î¤è¤¦¤ËÁÈ¿¥¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤ò¤Ï¤Ã¤­¤ê¤ÈÄêµÁ¤·¤Æ¤¤¤ë¡£g++ ¤Ë¤Ï¡¢µ¬³Ê¤ËŬ¤Ã¤¿¥³¡¼¥É¤È¤¦¤Þ¤¯Æ°ºî¤¹¤ë°ÅÌۤμÂÂβ½µ¡¹½¤¬¤¢¤ë¡£


Node:C++ Extensions, Next:, Previous:C Extensions, Up:Top

C++ ¸À¸ì¤ËÂФ¹¤ë³