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

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

?? porting.texi

?? xml大全 可讀寫調用率很高 xml大全 可讀寫調用率很高
?? 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一区二区三区免费野_久草精品视频
国产精品国产自产拍高清av| 4438亚洲最大| 欧美一二三四在线| 亚洲欧美日韩国产中文在线| 精品久久久久久久久久久久久久久| 欧美无乱码久久久免费午夜一区 | 成人av在线播放网站| 国产精品一卡二卡在线观看| 国产成人免费高清| 91亚洲午夜精品久久久久久| 91麻豆国产香蕉久久精品| 色狠狠综合天天综合综合| 欧美性生活影院| 欧美一区二区视频免费观看| 精品国产91乱码一区二区三区| 精品99一区二区三区| 国产精品色婷婷| 亚洲一区二三区| 久久精品理论片| 99久久精品一区二区| 色欧美片视频在线观看在线视频| 欧美吻胸吃奶大尺度电影 | 91行情网站电视在线观看高清版| 欧美三级资源在线| 精品伦理精品一区| 亚洲欧洲av色图| 亚洲va国产天堂va久久en| 美女视频黄免费的久久| 99视频在线观看一区三区| 欧美日韩一级黄| 国产日韩欧美综合一区| 亚洲国产综合色| 国内精品不卡在线| 在线欧美日韩精品| 欧美电影免费观看高清完整版在线观看| 久久久一区二区三区| 一区二区三区四区国产精品| 国产一区二区三区四区在线观看| 成人18视频日本| 欧美本精品男人aⅴ天堂| 亚洲视频免费在线| 国产米奇在线777精品观看| 欧美日韩极品在线观看一区| 国产精品无码永久免费888| 日本不卡的三区四区五区| 91视频在线观看免费| 国产午夜精品久久久久久免费视 | 免费xxxx性欧美18vr| 91在线一区二区三区| 亚洲精品在线电影| 亚洲h在线观看| 一本大道综合伊人精品热热| 久久精品男人的天堂| 日韩电影一区二区三区四区| 色猫猫国产区一区二在线视频| 久久久国际精品| 久久av老司机精品网站导航| 欧美亚洲免费在线一区| 综合激情网...| 国产一区二区三区四区五区美女 | 免费精品99久久国产综合精品| 色狠狠av一区二区三区| 国产精品污www在线观看| 激情六月婷婷久久| 日韩一区二区麻豆国产| 亚洲高清视频中文字幕| 欧美在线|欧美| 亚洲一区二区精品久久av| 91在线高清观看| 亚洲人一二三区| 一本色道**综合亚洲精品蜜桃冫| 国产精品久久久久影视| 国产不卡视频在线播放| 国产亚洲综合av| 国产成人综合在线| 欧美激情一区二区三区蜜桃视频| 国产乱国产乱300精品| 久久久综合九色合综国产精品| 蜜臀av在线播放一区二区三区| 欧美美女bb生活片| 日韩av在线发布| 精品av久久707| 成年人网站91| 夜夜嗨av一区二区三区四季av| 欧美综合视频在线观看| 亚洲成人自拍网| 欧美不卡一二三| 大美女一区二区三区| 中文字幕一区在线| 91国偷自产一区二区三区观看| 亚洲与欧洲av电影| 91精品久久久久久久久99蜜臂| 精品一区免费av| 亚洲情趣在线观看| 91.麻豆视频| 国产精品亚洲人在线观看| 1区2区3区精品视频| 7777精品伊人久久久大香线蕉完整版 | 日本不卡的三区四区五区| 亚洲免费大片在线观看| 久久不见久久见免费视频1| 成人午夜精品一区二区三区| 国内精品久久久久影院色| 色噜噜夜夜夜综合网| 日韩三级高清在线| 成人国产视频在线观看| 日韩国产精品久久| 色狠狠av一区二区三区| 高清不卡一区二区在线| 99热精品一区二区| 日本人妖一区二区| av在线一区二区三区| 五月婷婷激情综合网| 国产午夜精品美女毛片视频| 欧美艳星brazzers| 国产综合色产在线精品| 亚洲精品va在线观看| 日韩美女一区二区三区| 一本一本久久a久久精品综合麻豆| 日韩av一级电影| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 精品视频一区二区三区免费| 国产成人av一区二区三区在线观看| 综合久久国产九一剧情麻豆| 久久综合久久鬼色| 欧美片在线播放| 91视频在线观看免费| 国产精品456露脸| 日韩精品电影在线观看| 亚洲欧洲精品一区二区三区| 久久只精品国产| 91精品国产综合久久福利软件| 成人午夜私人影院| 精品一区二区免费在线观看| 丝袜诱惑亚洲看片| 亚洲午夜免费福利视频| 亚洲欧美激情小说另类| 国产精品二三区| 国产三级精品视频| 欧美精品一区二区三区四区 | 中文字幕中文在线不卡住| 精品国产91洋老外米糕| 欧美成人一区二区三区在线观看| 色呦呦一区二区三区| 成人av综合一区| av成人老司机| 99久久国产免费看| 成人午夜在线播放| 99在线热播精品免费| 不卡的看片网站| 99久久精品国产毛片| 91原创在线视频| 色天使色偷偷av一区二区| 91视频在线观看| 欧美在线观看一区二区| 欧美日韩中文字幕一区| 欧美日韩高清一区二区不卡| 精品视频在线视频| 欧美一区二区视频在线观看2022| 欧美一二三四在线| 久久久亚洲综合| 国产精品青草综合久久久久99| 国产精品美女久久久久久久久 | 亚洲电影在线播放| 爽爽淫人综合网网站| 午夜不卡av免费| 久久99国内精品| 成人一区二区三区| 色综合 综合色| 欧美片网站yy| 国产亚洲欧美一区在线观看| 国产精品日日摸夜夜摸av| 亚洲人成网站精品片在线观看| 亚洲综合激情网| 久久国产精品露脸对白| 粉嫩av亚洲一区二区图片| 一本一道久久a久久精品| 欧美一区二区免费视频| 久久毛片高清国产| 依依成人精品视频| 久久国产视频网| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲精品乱码久久久久久久久| 调教+趴+乳夹+国产+精品| 蜜桃视频免费观看一区| heyzo一本久久综合| 色菇凉天天综合网| 5566中文字幕一区二区电影 | 久久久久综合网| 亚洲免费高清视频在线| 亚洲一区视频在线观看视频| 精品国产乱码久久久久久免费| 精品午夜一区二区三区在线观看| 欧美裸体一区二区三区| 久久99久久久久久久久久久| 96av麻豆蜜桃一区二区| 精品日产卡一卡二卡麻豆| 成人免费观看视频| 中文字幕一区二区三区四区不卡 | 一区二区三区小说|