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

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

?? porting.texi

?? gcc3.2.1源代碼
?? TEXI
?? 第 1 頁 / 共 2 頁
字號:
\input texinfo@c ---------------------------------------------------------------------@c Prologue@c ---------------------------------------------------------------------@setfilename porting.info@settitle Porting libstdc++-v3@setchapternewpage odd@ifinfoThis file explains how to port libstdc++-v3 (the GNU C++ library) to a new target.Copyright (c) 2000, 2001, 2002 Free Software Foundation, Inc.@end ifinfo@c ---------------------------------------------------------------------@c Titlepage@c ---------------------------------------------------------------------@titlepage@title Porting libstdc++-v3@author Mark Mitchell@page@vskip 0pt plus 1filllCopyright @copyright{} 2000, 2001, 2002 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.1 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 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.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'll have to change the @file{configure.target} file to ensure thatyour new directory is activated.  Look for the switch statement thatsets @code{os_include_dir}, and add a pattern to handle your operatingsystem.  The switch statement switches on only the OS portion of thestandard target triplet; e.g., the @code{solaris2.8} in@code{sparc-sun-solaris2.8}.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 is one libstdc++-v3-specific macro which may bedefined.  @code{_G_USING_THUNKS} may be defined to 0 to express that theport doesn't use thunks (although it is unclear that this is stilluseful since libio support isn't currently working and the g++ v3 ABIinvalidates the assumption that some ports don't use thunks).Finally, you should bracket the entire file in an include-guard, likethis:@example#ifndef _GLIBCPP_OS_DEFINES#define _GLIBCPP_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 itself.  Otherwise you will need toedit the @file{configure.target} 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.target} 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 donot have to include @file{<ctype.h>} in this header; it will always beincluded before @file{ctype_base.h} is included.The next file to write is @file{ctype_noninline.h}, which also doesnot require include guards.  This file defines a few member functionsthat will be included in @file{include/bits/locale_facets.h}.  The firstfunction that must be written is the @code{ctype<char>::ctype}constructor.  Here is the IRIX example:@examplectype<char>::ctype(const mask* __table = 0, bool __del = false,       size_t __refs = 0)  : _Ctype_nois<char>(__refs), _M_del(__table != 0 && __del), 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区av在线播放| 国产1区2区3区精品美女| 国产一区二区成人久久免费影院 | 五月婷婷综合激情| 成人国产精品视频| 欧美成人艳星乳罩| 午夜国产精品影院在线观看| 成人小视频免费在线观看| 91精品福利在线一区二区三区 | 欧美亚洲动漫制服丝袜| 久久久久一区二区三区四区| 亚洲一区二区三区四区五区中文| 国产精品18久久久久久久久久久久 | 久久久无码精品亚洲日韩按摩| 亚洲电影中文字幕在线观看| 成人av网站在线观看免费| 精品国产乱码久久久久久1区2区| 亚洲在线观看免费视频| 99精品在线观看视频| 国产欧美一区二区精品久导航| 日韩电影在线一区二区三区| 欧美专区日韩专区| 亚洲黄色尤物视频| 色综合久久九月婷婷色综合| 中文字幕在线不卡国产视频| 粉嫩一区二区三区性色av| 久久老女人爱爱| 国产精品一区二区黑丝 | 欧美精品久久久久久久多人混战| 综合久久久久久久| 日韩色在线观看| 午夜视频在线观看一区二区三区| 日本高清不卡视频| 亚洲一二三区视频在线观看| 在线精品视频小说1| 一区二区三区久久久| 欧美三级电影在线看| 亚洲国产精品影院| 欧美一区二区三区四区五区| 亚洲成va人在线观看| 在线不卡中文字幕| 美女视频免费一区| 久久这里只精品最新地址| 国产精品白丝jk白祙喷水网站 | 97se亚洲国产综合自在线| 亚洲欧洲色图综合| 91高清在线观看| 亚洲成人av福利| 日韩欧美色综合网站| 国产乱国产乱300精品| 国产精品美女久久久久久久久久久 | 91丝袜美女网| 亚洲图片欧美色图| 日韩精品专区在线影院重磅| 欧美日韩精品欧美日韩精品| 午夜亚洲福利老司机| 欧美一区二区大片| 国产91精品久久久久久久网曝门| 中文字幕一区二区三区在线播放 | 国产精品久久久久9999吃药| 91久久精品一区二区| 免费在线成人网| 国产精品入口麻豆原神| 欧美日韩国产片| 国产精品亚洲一区二区三区在线| 中文字幕中文字幕一区二区| 精品视频一区三区九区| 国内精品自线一区二区三区视频| 自拍偷拍亚洲综合| 欧美videos中文字幕| 91玉足脚交白嫩脚丫在线播放| 日韩主播视频在线| 国产精品萝li| 日韩欧美高清一区| 色噜噜狠狠色综合中国| 韩国一区二区在线观看| 亚洲成人在线观看视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产成a人亚洲精品| 亚洲成a人片在线观看中文| 国产精品网曝门| 亚洲精品在线观看视频| 欧美三级资源在线| av不卡在线播放| 国产一区二区视频在线播放| 亚洲一区二区三区激情| 中文字幕成人av| 欧美白人最猛性xxxxx69交| 欧美在线看片a免费观看| 国产盗摄一区二区| 欧美a一区二区| 亚洲国产精品一区二区www | 久久久精品综合| 日韩一区二区三区四区五区六区| av电影在线观看一区| 国产一区二区91| 蜜臀av一区二区| 日韩av午夜在线观看| 亚洲电影在线免费观看| 亚洲激情图片一区| 亚洲伦理在线精品| 中文字幕日韩av资源站| 中文一区二区完整视频在线观看 | 一区二区三区成人| 国产精品福利一区二区| 国产亲近乱来精品视频| 国产日韩亚洲欧美综合| 久久久国际精品| 久久精品无码一区二区三区| 日韩免费高清av| 欧美一个色资源| 日韩一区二区在线观看| 日韩亚洲国产中文字幕欧美| 7777女厕盗摄久久久| 欧美一区二区三区系列电影| 欧美精品粉嫩高潮一区二区| 欧美精品一级二级三级| 91精品免费在线观看| 精品久久99ma| 国产日韩欧美精品在线| 中文字幕精品一区| 亚洲欧洲精品一区二区三区 | 国产亚洲精品aa| 国产欧美一区二区三区网站 | 免费黄网站欧美| 国内偷窥港台综合视频在线播放| 国产一区三区三区| 粉嫩13p一区二区三区| 99久久精品国产精品久久 | www.亚洲免费av| 91国内精品野花午夜精品| 欧美日韩国产经典色站一区二区三区| 欧美另类变人与禽xxxxx| 日韩欧美黄色影院| 中文字幕欧美日韩一区| 亚洲在线中文字幕| 久久精品噜噜噜成人88aⅴ| 国产精品888| 一本大道久久精品懂色aⅴ| 欧美裸体一区二区三区| 久久九九全国免费| 亚洲欧美aⅴ...| 麻豆精品视频在线观看| 成人听书哪个软件好| 精品污污网站免费看| 精品粉嫩超白一线天av| 亚洲人成亚洲人成在线观看图片| 午夜精品在线看| 国产一区二区按摩在线观看| 色综合久久久久久久久| 欧美videossexotv100| 亚洲欧美一区二区三区极速播放| 日韩精品高清不卡| 99在线视频精品| 日韩欧美一级二级三级久久久| 亚洲天堂免费在线观看视频| 日韩av中文字幕一区二区三区| 国产一区二区三区免费播放| 91国内精品野花午夜精品 | 日韩电影免费一区| www.亚洲激情.com| 精品日韩欧美一区二区| 亚洲高清久久久| av在线不卡电影| 日韩免费电影网站| 一级女性全黄久久生活片免费| 国产综合成人久久大片91| 欧美男男青年gay1069videost| 中文av字幕一区| 久久成人综合网| 欧美三级电影精品| 国产精品久久影院| 国产裸体歌舞团一区二区| 欧美午夜精品久久久久久超碰| 欧美韩日一区二区三区| 久久国产麻豆精品| 欧美美女一区二区在线观看| 亚洲欧美激情视频在线观看一区二区三区| 国产麻豆精品95视频| 日韩小视频在线观看专区| 香蕉成人啪国产精品视频综合网 | 成人免费视频app| 精品动漫一区二区三区在线观看| 亚洲成人在线观看视频| 欧美亚洲国产一区二区三区 | 欧美二区三区的天堂| 亚洲精品国产无套在线观| 高清av一区二区| 国产午夜精品美女毛片视频| 美女视频一区在线观看| 555夜色666亚洲国产免| 亚洲午夜久久久| 欧美日韩免费高清一区色橹橹| 亚洲欧美色一区| 欧美怡红院视频| 五月天亚洲精品| 91精品国产全国免费观看| 日本一区中文字幕| 日韩一区二区三区在线观看| 日本一不卡视频|