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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? porting.texi

?? Mac OS X 10.4.9 for x86 Source Code gcc 實現(xiàn)源代碼
?? TEXI
?? 第 1 頁 / 共 2 頁
字號:
\input texinfo@c ---------------------------------------------------------------------@c Prologue@c ---------------------------------------------------------------------@setfilename porting.info@settitle Porting libstdc++-v3@setchapternewpage odd@copyingCopyright @copyright{} 2000, 2001, 2002, 2003 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.This file should provide macro definitions for @code{__off_t},@code{__off64_t}, and @code{__ssize_t}.  Typically, this just lookslike:@example#define __off_t off_t#define __off64_t off64_t#define __ssize_t ssize_t@end example@noindentYou don't have to provide these definitions if your system libraryalready defines these types -- but the only library known to providethese types is the GNU C Library, so you will almost certainly have toprovide these macros.  Note that this file does not have to include aheader file that defines @code{off_t}, or the other types; you simplyhave to provide the macros.In addition, several libstdc++-v3 source files unconditionally definethe macro @code{_POSIX_SOURCE}.  On many systems, defining this macrocauses large 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 the

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美肥大bbwbbw高潮| 日韩视频中午一区| 日韩丝袜美女视频| 日韩一区中文字幕| 日本成人在线电影网| 91网站黄www| 久久影院午夜片一区| 午夜欧美视频在线观看| 99综合电影在线视频| 精品三级在线看| 亚洲成人动漫一区| 91久久精品一区二区| 国产午夜精品在线观看| 日本欧美一区二区在线观看| 91久久免费观看| 综合在线观看色| 成人免费福利片| 精品美女在线观看| 蜜桃视频第一区免费观看| 91久久免费观看| 亚洲精品视频在线看| 粉嫩嫩av羞羞动漫久久久 | 另类中文字幕网| 欧美日韩一区二区三区在线看| 国产色产综合色产在线视频| 久久精品99国产国产精| 69久久99精品久久久久婷婷| 亚洲国产精品嫩草影院| 91久久精品国产91性色tv| 国产精品高清亚洲| 国产aⅴ精品一区二区三区色成熟| 精品欧美一区二区在线观看| 日韩电影免费在线看| 91精品国产91久久久久久一区二区| 亚洲一线二线三线久久久| 欧美专区日韩专区| 亚洲一区二区三区在线看 | 99久久99久久精品免费看蜜桃| 久久天天做天天爱综合色| 久久av资源网| 久久毛片高清国产| 国产高清视频一区| 欧美经典一区二区| 大胆欧美人体老妇| 亚洲同性gay激情无套| 在线精品国精品国产尤物884a| 亚洲欧美日韩中文字幕一区二区三区 | 欧美一区二区三区免费| 久久精品国产网站| 久久久国产精华| www.亚洲色图.com| 亚洲精品免费电影| 9191久久久久久久久久久| 极品尤物av久久免费看| 久久久不卡网国产精品一区| 99久久免费精品| 一区二区免费在线播放| 欧美老女人第四色| 看片网站欧美日韩| 国产精品另类一区| 欧美日韩免费观看一区三区| 美女精品自拍一二三四| 国产婷婷色一区二区三区| 色综合久久综合中文综合网| 视频一区免费在线观看| 久久久久9999亚洲精品| 在线看国产日韩| 九一久久久久久| 亚洲天堂成人网| 日韩欧美一级特黄在线播放| 风流少妇一区二区| 亚洲va中文字幕| 国产日韩亚洲欧美综合| 在线视频综合导航| 国产高清成人在线| 午夜精彩视频在线观看不卡| 中文一区一区三区高中清不卡| 在线免费观看日本一区| 国产中文字幕一区| 亚洲图片欧美综合| 国产精品色噜噜| 欧美一二三四区在线| 99久久99久久精品免费看蜜桃 | 欧美一区二区三区在线观看| 99久久精品99国产精品| 国产一区二区三区黄视频 | 久久99精品国产.久久久久久 | 在线视频一区二区三区| 国产伦精品一区二区三区视频青涩| 亚洲永久精品国产| 国产精品欧美一区喷水| 精品久久久三级丝袜| 欧洲精品视频在线观看| 成人av网站大全| 久久精品国产精品亚洲精品| 一二三区精品福利视频| 国产精品美女www爽爽爽| 欧美电影免费观看高清完整版 | 国产午夜亚洲精品午夜鲁丝片| 欧美日韩亚洲综合一区| 91美女在线视频| 成人自拍视频在线| 国产一区二区成人久久免费影院| 丝袜美腿亚洲色图| 亚洲最新视频在线播放| 亚洲人妖av一区二区| 欧美激情在线一区二区| 久久久精品2019中文字幕之3| 日韩女优毛片在线| 日韩亚洲欧美在线观看| 91麻豆精品国产自产在线| 欧美性videosxxxxx| 日本精品一区二区三区四区的功能| 成人a区在线观看| 成人亚洲一区二区一| 国产自产v一区二区三区c| 免费在线看一区| 免费成人深夜小野草| 日本不卡在线视频| 日韩高清电影一区| 免费一级片91| 狠狠网亚洲精品| 国产精品99久久久久久有的能看| 国产一区二区免费在线| 激情图区综合网| 丁香婷婷综合激情五月色| 成人性生交大片免费看视频在线| 福利一区二区在线观看| bt欧美亚洲午夜电影天堂| 91视频国产观看| 色狠狠色噜噜噜综合网| 欧美午夜一区二区三区免费大片| 这里只有精品99re| 久久网站热最新地址| 国产精品久久久久aaaa| 一区二区三区四区高清精品免费观看 | 国产一区欧美日韩| 懂色一区二区三区免费观看| 日本韩国视频一区二区| 欧美人狂配大交3d怪物一区| 91精品国产综合久久小美女| 久久综合九色综合欧美就去吻| 国产三级精品在线| 亚洲欧美成人一区二区三区| 亚洲第一福利视频在线| 激情欧美一区二区三区在线观看| 波多野洁衣一区| 宅男在线国产精品| 国产日韩欧美综合在线| 亚洲一区二区三区国产| 精品亚洲国产成人av制服丝袜| 丁香一区二区三区| 91精品欧美一区二区三区综合在 | 亚洲成人三级小说| 激情另类小说区图片区视频区| 成人一级片在线观看| 欧美日韩一区二区三区四区 | 亚洲国产一区视频| 精品写真视频在线观看| 91麻豆免费观看| 欧美成人伊人久久综合网| 自拍偷拍国产亚洲| 精品一区二区三区在线观看国产| 91免费观看视频| 精品国产三级a在线观看| 亚洲日本一区二区三区| 国内欧美视频一区二区| 欧美色手机在线观看| 日本一区二区视频在线观看| 视频一区中文字幕国产| 91视频国产资源| 国产亚洲欧洲997久久综合 | 亚洲美女区一区| 国产精品自在在线| 6080午夜不卡| 夜夜嗨av一区二区三区四季av| 国产精品一区二区91| 欧美精品久久久久久久多人混战| 中文字幕一区二区三区蜜月| 美女www一区二区| 欧美三级电影精品| 亚洲人成网站色在线观看| 国产91丝袜在线播放0| 日韩精品一区二区三区视频在线观看| 亚洲免费av在线| 99久久亚洲一区二区三区青草| 精品国产麻豆免费人成网站| 亚洲香蕉伊在人在线观| 91在线porny国产在线看| 国产片一区二区| 国产一区二区三区免费在线观看| 欧美一区二区私人影院日本| 亚洲成va人在线观看| 欧美综合天天夜夜久久| 亚洲精品国产精品乱码不99| av电影在线观看不卡| 亚洲婷婷综合色高清在线| 99久久精品国产一区二区三区| 欧美激情一区不卡| 成人福利视频在线|