亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? porting.texi

?? linux下編程用 編譯軟件
?? TEXI
?? 第 1 頁 / 共 2 頁
字號:
\input texinfo@c ---------------------------------------------------------------------@c Prologue@c ---------------------------------------------------------------------@setfilename porting.info@settitle Porting libstdc++-v3@setchapternewpage odd@copyingCopyright @copyright{} 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.Permission is granted to copy, distribute and/or modify this documentunder the terms of the GNU Free Documentation License, Version 1.2 orany later version published by the Free Software Foundation; with theInvariant Sections being ``GNU General Public License'', the Front-Covertexts being (a) (see below), and with the Back-Cover Texts being (b)(see below).  A copy of the license is included in the section entitled``GNU Free Documentation License''.(a) The FSF's Front-Cover Text is:     A GNU Manual(b) The FSF's Back-Cover Text is:     You have freedom to copy and modify this GNU Manual, like GNU     software.  Copies published by the Free Software Foundation raise     funds for GNU development.@end copying@ifinfoThis file explains how to port libstdc++-v3 (the GNU C++ library) to a new target.@insertcopying@end ifinfo@c ---------------------------------------------------------------------@c Titlepage@c ---------------------------------------------------------------------@titlepage@title Porting libstdc++-v3@author Mark Mitchell@page@vskip 0pt plus 1filll@insertcopying@end titlepage@c ---------------------------------------------------------------------@c Top@c ---------------------------------------------------------------------@node Top@top Porting libstdc++-v3This document explains how to port libstdc++-v3 (the GNU C++ library) to a new target.In order to make the GNU C++ library (libstdc++-v3) work with a newtarget, you must edit some configuration files and provide some newheader files.  Unless this is done, libstdc++-v3 will use genericsettings which may not be correct for your target; even if they arecorrect, they will likely be inefficient.Before you get started, make sure that you have a working C library onyour target.  The C library need not precisely comply with anyparticular standard, but should generally conform to the requirementsimposed by the ANSI/ISO standard.In addition, you should try to verify that the C++ compiler generallyworks.  It is difficult to test the C++ compiler without a workinglibrary, but you should at least try some minimal test cases.(Note that what we think of as a ``target,'' the library refers to asa ``host.''  The comment at the top of @file{configure.ac} explains why.)Here are the primary steps required to port the library:@menu* Operating system::    Configuring for your operating system.* CPU::                 Configuring for your processor chip.* Character types::     Implementing character classification.* Thread safety::       Implementing atomic operations.* Numeric limits::	Implementing numeric limits.* Libtool::             Using libtool.* GNU Free Documentation License:: How you can copy and share this manual.@end menu@c ---------------------------------------------------------------------@c Operating system@c ---------------------------------------------------------------------@node Operating system@chapter Operating systemIf you are porting to a new operating system (as opposed to a new chipusing an existing operating system), you will need to create a newdirectory in the @file{config/os} hierarchy.  For example, the IRIXconfiguration files are all in @file{config/os/irix}.  There is no setway to organize the OS configuration directory.  For example,@file{config/os/solaris/solaris-2.6} and@file{config/os/solaris/solaris-2.7} are used as configurationdirectories for these two versions of Solaris.  On the other hand, bothSolaris 2.7 and Solaris 2.8 use the @file{config/os/solaris/solaris-2.7}directory.  The important information is that there needs to be adirectory under @file{config/os} to store the files for your operatingsystem.You might have to change the @file{configure.host} file to ensure thatyour new directory is activated.  Look for the switch statement that sets@code{os_include_dir}, and add a pattern to handle your operating systemif the default will not suffice.  The switch statement switches on onlythe OS portion of the standard target triplet; e.g., the @code{solaris2.8}in @code{sparc-sun-solaris2.8}.  If the new directory is named after theOS portion of the triplet (the default), then nothing needs to be changed.The first file to create in this directory, should be called@file{os_defines.h}.  This file contains basic macro definitionsthat are required to allow the C++ library to work with your C library.Several libstdc++-v3 source files unconditionally define the macro@code{_POSIX_SOURCE}.  On many systems, defining this macro causeslarge portions of the C library header files to be eliminatedat preprocessing time.  Therefore, you may have to @code{#undef} thismacro, or define other macros (like @code{_LARGEFILE_SOURCE} or@code{__EXTENSIONS__}).  You won't know what macros to define orundefine at this point; you'll have to try compiling the library andseeing what goes wrong.  If you see errors about calling functionsthat have not been declared, look in your C library headers to see ifthe functions are declared there, and then figure out what macros youneed to define.  You will need to add them to the@code{CPLUSPLUS_CPP_SPEC} macro in the GCC configuration file for yourtarget.  It will not work to simply define these macros in@file{os_defines.h}.At this time, there are a few libstdc++-v3-specific macros which may bedefined:@code{_GLIBCXX_USE_C99_CHECK} may be defined to 1 to check C99function declarations (which are not covered by specialization below)found in system headers against versions found in the library headersderived from the standard.@code{_GLIBCXX_USE_C99_DYNAMIC} may be defined to an expression thatyields 0 if and only if the system headers are exposing proper supportfor C99 functions (which are not covered by specialization below).  Ifdefined, it must be 0 while bootstrapping the compiler/rebuilding thelibrary.@code{_GLIBCXX_USE_C99_LONG_LONG_CHECK} may be defined to 1 to checkthe set of C99 long long function declarations found in system headersagainst versions found in the library headers derived from thestandard.@code{_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC} may be defined to anexpression that yields 0 if and only if the system headers areexposing proper support for the set of C99 long long functions.  Ifdefined, it must be 0 while bootstrapping the compiler/rebuilding thelibrary.@code{_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC} may be defined to anexpression that yields 0 if and only if the system headersare exposing proper support for the related set of macros.  If defined,it must be 0 while bootstrapping the compiler/rebuilding the library.@code{_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK} may be definedto 1 to check the related set of function declarations found in systemheaders against versions found in the library headers derived fromthe standard.@code{_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC} may be definedto an expression that yields 0 if and only if the system headersare exposing proper support for the related set of functions.  If defined,it must be 0 while bootstrapping the compiler/rebuilding the library.Finally, you should bracket the entire file in an include-guard, likethis:@example#ifndef _GLIBCXX_OS_DEFINES#define _GLIBCXX_OS_DEFINES...#endif@end exampleWe recommend copying an existing @file{os_defines.h} to use as astarting point.@c ---------------------------------------------------------------------@c CPU@c ---------------------------------------------------------------------@node CPU@chapter CPUIf you are porting to a new chip (as opposed to a new operating systemrunning on an existing chip), you will need to create a new directory in the@file{config/cpu} hierarchy.  Much like the @ref{Operating system} setup,there are no strict rules on how to organize the CPU configurationdirectory, but careful naming choices will allow the configury to find yoursetup files without explicit help.We recommend that for a target triplet @code{<CPU>-<vendor>-<OS>}, youname your configuration directory @file{config/cpu/<CPU>}.  If you do this,the configury will find the directory by itself.  Otherwise you will need toedit the @file{configure.host} file and, in the switch statement that sets@code{cpu_include_dir}, add a pattern to handle your chip.Note that some chip families share a single configuration directory, forexample, @code{alpha}, @code{alphaev5}, and @code{alphaev6} all use the@file{config/cpu/alpha} directory, and there is an entry in the@file{configure.host} switch statement to handle this.The @code{cpu_include_dir} sets default locations for the files controlling@ref{Thread safety} and @ref{Numeric limits}, if the defaults are notappropriate for your chip.@c ---------------------------------------------------------------------@c Character types@c ---------------------------------------------------------------------@node Character types@chapter Character typesThe library requires that you provide three header files to implementcharacter classification, analogous to that provided by the C libraries@file{<ctype.h>} header.  You can model these on the files provided in@file{config/os/generic}.  However, these files will almostcertainly need some modification.The first file to write is @file{ctype_base.h}.  This file providessome very basic information about character classification.  The libstdc++-v3library assumes that your C library implements @file{<ctype.h>} by usinga table (indexed by character code) containing integers, where each ofthese integers is a bit-mask indicating whether the character isupper-case, lower-case, alphabetic, etc.  The @file{ctype_base.h}file gives the type of the integer, and the values of the various bitmasks.  You will have to peer at your own @file{<ctype.h>} to figure outhow to define the values required by this file.The @file{ctype_base.h} header file does not need include guards.It should contain a single @code{struct} definition called@code{ctype_base}.  This @code{struct} should contain two typedeclarations, and one enumeration declaration, like this example, takenfrom the IRIX configuration:@examplestruct ctype_base@{  typedef unsigned int 	mask;  typedef int* 		__to_type;  enum  @{    space = _ISspace,    print = _ISprint,    cntrl = _IScntrl,    upper = _ISupper,    lower = _ISlower,    alpha = _ISalpha,    digit = _ISdigit,    punct = _ISpunct,    xdigit = _ISxdigit,    alnum = _ISalnum,    graph = _ISgraph  @};@};@end example@noindentThe @code{mask} type is the type of the elements in the table.  If yourC library uses a table to map lower-case numbers to upper-case numbers,and vice versa, you should define @code{__to_type} to be the type of theelements in that table.  If you don't mind taking a minor performancepenalty, or if your library doesn't implement @code{toupper} and@code{tolower} in this way, you can pick any pointer-to-integer type,but you must still define the type.The enumeration should give definitions for all the values in the aboveexample, using the values from your native @file{<ctype.h>}.  They canbe given symbolically (as above), or numerically, if you prefer.  You do

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91亚洲国产成人精品一区二区三 | 本田岬高潮一区二区三区| 亚洲成人资源网| 亚洲一区在线观看视频| 亚洲黄色片在线观看| 亚洲视频一二三| 国产精品成人免费在线| 中文字幕一区二区三区av| 国产精品欧美经典| 亚洲视频精选在线| 亚洲综合免费观看高清完整版在线 | 91激情五月电影| 欧亚洲嫩模精品一区三区| 欧美无人高清视频在线观看| 欧美日韩一区二区三区在线| 日韩亚洲欧美在线| 久久综合久久综合九色| 国产精品美女视频| 亚洲欧美日韩国产成人精品影院| 亚洲免费色视频| 亚洲r级在线视频| 久久国产精品色| 成人免费视频网站在线观看| 91丨国产丨九色丨pron| 欧美日韩久久一区| 欧美va在线播放| 亚洲欧洲成人av每日更新| 亚洲一区二区欧美激情| 国产一区二区91| 色综合咪咪久久| 日韩一区二区三| 中文字幕佐山爱一区二区免费| 午夜亚洲国产au精品一区二区| 美日韩一区二区三区| 波波电影院一区二区三区| 7777精品伊人久久久大香线蕉最新版| 欧美精品一区视频| 一区二区在线看| 韩国v欧美v日本v亚洲v| 欧美丝袜丝交足nylons图片| 欧美激情在线观看视频免费| 亚洲国产精品久久久久婷婷884| 国产一区二区在线影院| 欧美在线视频不卡| 国产精品二三区| 精品一区二区三区在线播放视频 | 国产精品视频一区二区三区不卡| 亚洲二区在线观看| 国产成人激情av| 制服.丝袜.亚洲.中文.综合| 中文字幕一区二| 韩国女主播一区| 欧美一级欧美三级| 一个色妞综合视频在线观看| 国产69精品久久777的优势| 日韩一级欧美一级| 亚洲国产精品久久一线不卡| 99久久精品国产麻豆演员表| 精品久久久久av影院| 午夜精品久久久久久不卡8050| 成人av免费在线观看| 久久一二三国产| 久久国产剧场电影| 欧美电影免费观看高清完整版在| 亚洲午夜久久久| 欧美亚一区二区| 一区二区三区中文字幕精品精品| 国产成人免费在线观看不卡| 26uuu精品一区二区在线观看| 视频一区中文字幕国产| 欧美少妇xxx| 亚洲成a人片在线不卡一二三区 | 日韩精品一区二区三区在线| 日本最新不卡在线| 日韩一区二区不卡| 免费成人深夜小野草| 91精品国产综合久久久久久久久久 | 99这里都是精品| 最新国产成人在线观看| 9i在线看片成人免费| 国产精品不卡视频| 91猫先生在线| 亚洲国产综合色| 5858s免费视频成人| 麻豆精品久久精品色综合| 日韩视频一区在线观看| 国产专区综合网| 日本一区二区成人在线| eeuss影院一区二区三区 | 免费成人在线播放| 欧美精品一区二区三区在线| 精品一区中文字幕| 久久精品亚洲乱码伦伦中文| 不卡的av在线播放| 亚洲成人在线观看视频| 欧美一区二区在线免费播放| 激情都市一区二区| 亚洲图片激情小说| 欧美一级生活片| 高清国产一区二区| 亚洲国产cao| 精品福利一区二区三区免费视频| 国产成人综合亚洲网站| 亚洲免费视频中文字幕| 日韩一级二级三级精品视频| 成人激情免费视频| 亚洲国产色一区| 国产日韩欧美不卡| 欧美三级视频在线播放| 激情综合色播五月| 亚洲激情图片一区| 精品国产一区二区三区忘忧草| 91香蕉视频mp4| 久久av中文字幕片| 亚洲福利视频一区| 国产精品久久久久aaaa| 欧美一卡二卡三卡四卡| 91老师国产黑色丝袜在线| 美国毛片一区二区| 亚洲码国产岛国毛片在线| 欧美精品一区二区三区高清aⅴ| 色婷婷香蕉在线一区二区| 激情欧美一区二区| 视频一区国产视频| 亚洲精品视频一区| 国产欧美日韩精品一区| 91精品国产一区二区三区蜜臀| av电影在线观看不卡| 国产在线国偷精品产拍免费yy| 亚洲成av人片在www色猫咪| 国产精品久久久久久久久久久免费看 | 日韩精品电影在线观看| 一区二区三区四区不卡视频| 国产婷婷色一区二区三区四区 | 国产日本欧美一区二区| 日韩一区二区中文字幕| 色播五月激情综合网| 不卡的电影网站| 岛国一区二区在线观看| 久久精品国产第一区二区三区| 亚洲国产一区二区在线播放| 亚洲猫色日本管| 亚洲视频 欧洲视频| 亚洲欧美在线视频| 亚洲国产经典视频| 国产农村妇女毛片精品久久麻豆| 日韩亚洲欧美综合| 日韩欧美激情四射| 欧美大尺度电影在线| 精品久久久久香蕉网| 久久只精品国产| 久久亚洲捆绑美女| 欧美激情一区二区三区蜜桃视频 | 曰韩精品一区二区| 亚洲色图清纯唯美| 亚洲精品国产第一综合99久久| 国产精品卡一卡二| 中文字幕欧美一| 亚洲人成7777| 亚洲国产精品一区二区尤物区| 午夜精品久久久久久| 免费成人美女在线观看.| 狠狠色丁香久久婷婷综| 极品美女销魂一区二区三区免费| 国产精品自在在线| 99久久精品国产精品久久| 美腿丝袜在线亚洲一区| 午夜精品久久久久久久久久| 欧美另类高清zo欧美| 欧美日韩视频在线观看一区二区三区| 在线观看免费成人| 在线不卡欧美精品一区二区三区| 欧美精品久久久久久久多人混战| 日韩欧美一级精品久久| 久久理论电影网| 亚洲天堂网中文字| 性欧美大战久久久久久久久| 日韩av午夜在线观看| 国产高清不卡二三区| 色婷婷久久99综合精品jk白丝| 91久久奴性调教| 日韩视频一区二区三区在线播放| 欧美精品一区二区三区蜜桃 | 国产精一区二区三区| 在线免费亚洲电影| 精品国产伦一区二区三区观看方式 | 日本欧美肥老太交大片| 国产成人午夜视频| 欧美主播一区二区三区| 欧美tickle裸体挠脚心vk| 中文天堂在线一区| 日本不卡高清视频| 成人avav影音| 欧美一区二区三区精品| 国产精品欧美综合在线| 蜜桃av一区二区三区| 91理论电影在线观看| 国产视频不卡一区| 香蕉影视欧美成人| 99re这里都是精品|