maint.texi

来自「一个C源代码分析器」· TEXI 代码 · 共 967 行 · 第 1/3 页

TEXI
967
字号
implemented in terms of itself, so a configuration using just@file{posix} cannot be complete.@item unixThis is the directory for Unix-like things.  @xref{Porting to Unix}.@file{unix} implies @file{posix}.  There are some special-purposesubdirectories of @file{unix}:@table @file@item unix/commonThis directory is for things common to both BSD and System V release 4.Both @file{unix/bsd} and @file{unix/sysv/sysv4} imply @file{unix/common}.@item unix/inetThis directory is for @code{socket} and related functions on Unix systems.The @file{inet} top-level subdirectory is enabled by @file{unix/inet/Subdirs}.@file{unix/common} implies @file{unix/inet}.@end table@item machThis is the directory for things based on the Mach microkernel from CMU(including the GNU operating system).  Other basic operating systems(VMS, for example) would have their own directories at the top level ofthe @file{sysdeps} hierarchy, parallel to @file{unix} and @file{mach}.@end table@node Porting to Unix@appendixsubsec Porting the GNU C Library to Unix SystemsMost Unix systems are fundamentally very similar.  There are variationsbetween different machines, and variations in what facilities areprovided by the kernel.  But the interface to the operating systemfacilities is, for the most part, pretty uniform and simple.The code for Unix systems is in the directory @file{unix}, at the toplevel of the @file{sysdeps} hierarchy.  This directory containssubdirectories (and subdirectory trees) for various Unix variants.The functions which are system calls in most Unix systems areimplemented in assembly code in files in @file{sysdeps/unix}.  Thesefiles are named with a suffix of @samp{.S}; for example,@file{__open.S}.  Files ending in @samp{.S} are run through the Cpreprocessor before being fed to the assembler.These files all use a set of macros that should be defined in@file{sysdep.h}.  The @file{sysdep.h} file in @file{sysdeps/unix}partially defines them; a @file{sysdep.h} file in another directory mustfinish defining them for the particular machine and operating systemvariant.  See @file{sysdeps/unix/sysdep.h} and the machine-specific@file{sysdep.h} implementations to see what these macros are and whatthey should do.@refillThe system-specific makefile for the @file{unix} directory (that is, thefile @file{sysdeps/unix/Makefile}) gives rules to generate several filesfrom the Unix system you are building the library on (which is assumedto be the target system you are building the library @emph{for}).  Allthe generated files are put in the directory where the object files arekept; they should not affect the source tree itself.  The filesgenerated are @file{ioctls.h}, @file{errnos.h}, @file{sys/param.h}, and@file{errlist.c} (for the @file{stdio} section of the library).@ignore@c This section might be a good idea if it is finished,@c but there's no point including it as it stands. --rms@c @appendixsec Compatibility with Traditional C@c ??? This section is really short now.  Want to keep it? --rolandAlthough the GNU C library implements the ANSI C library facilities, you@emph{can} use the GNU C library with traditional, ``pre-ANSI'' Ccompilers.  However, you need to be careful because the content andorganization of the GNU C library header files differs from that oftraditional C implementations.  This means you may need to make changesto your program in order to get it to compile.@end ignore@node Contributors@appendixsec Contributors to the GNU C LibraryThe GNU C library was written almost entirely by Roland McGrath, who nowmaintains it.  Some parts of the library were contributed or worked onby other people.@itemize @bullet@itemThe @code{getopt} function and related code were written byRichard Stallman, @w{David J. MacKenzie}, and @w{Roland McGrath}.@itemMost of the math functions are taken from 4.4 BSD; they have beenmodified only slightly to work with the GNU C library.  TheInternet-related code (most of the @file{inet} subdirectory) and severalother miscellaneous functions and header files have been included withlittle or no modification.All code incorporated from 4.4 BSD is under the following copyright:@quotation@displayCopyright @copyright{} 1991 Regents of the University of California.All rights reserved.@end displayRedistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditionsare met:@enumerate@itemRedistributions of source code must retain the above copyrightnotice, this list of conditions and the following disclaimer.@itemRedistributions in binary form must reproduce the above copyrightnotice, this list of conditions and the following disclaimer in thedocumentation and/or other materials provided with the distribution.@itemAll advertising materials mentioning features or use of this softwaremust display the following acknowledgement:@quotationThis product includes software developed by the University ofCalifornia, Berkeley and its contributors.@end quotation@itemNeither the name of the University nor the names of its contributorsmay be used to endorse or promote products derived from this softwarewithout specific prior written permission.@end enumerate@sc{this software is provided by the regents and contributors ``as is'' andany express or implied warranties, including, but not limited to, theimplied warranties of merchantability and fitness for a particular purposeare disclaimed.  in no event shall the regents or contributors be liablefor any direct, indirect, incidental, special, exemplary, or consequentialdamages (including, but not limited to, procurement of substitute goodsor services; loss of use, data, or profits; or business interruption)however caused and on any theory of liability, whether in contract, strictliability, or tort (including negligence or otherwise) arising in any wayout of the use of this software, even if advised of the possibility ofsuch damage.}@end quotation@itemThe random number generation functions @code{random}, @code{srandom},@code{setstate} and @code{initstate}, which are also the basis for the@code{rand} and @code{srand} functions, were written by Earl T. Cohenfor the University of California at Berkeley and are copyrighted by theRegents of the University of California.  They have undergone minorchanges to fit into the GNU C library and to fit the ANSI C standard,but the functional code is Berkeley's.@refill@itemThe merge sort function @code{qsort} was written by Michael J. Haertel.@itemThe quick sort function used as a fallback by @code{qsort} was writtenby Douglas C. Schmidt.@itemThe memory allocation functions @code{malloc}, @code{realloc} and@code{free} and related code were written by Michael J. Haertel.@comment tege's name has an umlaut.@tex\xdef\SETtege{Torbj\"orn Granlund}@end tex@ifinfo@set tege Torbjorn Granlund@end ifinfo@itemFast implementations of many of the string functions (@code{memcpy},@code{strlen}, etc.) were written by @value{tege}.@itemSome of the support code for Mach is taken from Mach 3.0 by CMU,and is under the following copyright terms:@quotation@displayMach Operating SystemCopyright @copyright{} 1991,1990,1989 Carnegie Mellon UniversityAll Rights Reserved.@end displayPermission to use, copy, modify and distribute this software and itsdocumentation is hereby granted, provided that both the copyrightnotice and this permission notice appear in all copies of thesoftware, derivative works or modified versions, and any portionsthereof, and that both notices appear in supporting documentation.@sc{carnegie mellon allows free use of this software in its ``as is''condition.  carnegie mellon disclaims any liability of any kind forany damages whatsoever resulting from the use of this software.}Carnegie Mellon requests users of this software to return to@display Software Distribution Coordinator School of Computer Science Carnegie Mellon University Pittsburgh PA 15213-3890@end display@noindentor @samp{Software.Distribution@@CS.CMU.EDU} any improvements orextensions that they make and grant Carnegie Mellon the rights toredistribute these changes.@end quotation@itemThe @file{tar.h} header file was written by David J. MacKenzie.@itemThe port to the MIPS DECStation running Ultrix 4(@code{mips-dec-ultrix4})was contributed by Brendan Kehoe and Ian Lance Taylor.@itemThe DES encryption function @code{crypt} and related functions werecontributed by Michael Glad.@itemThe @code{ftw} function was contributed by Ian Lance Taylor.@itemThe code to support SunOS shared libraries was contributed by Tom Quinn.@itemThe @code{mktime} function was contributed by Noel Cragg.@itemThe port to the Sequent Symmetry running Dynix version 3(@code{i386-sequent-bsd}) was contributed by Jason Merrill.@itemThe timezone support code is derived from the public-domain timezonepackage by Arthur David Olson.@itemThe Internet resolver code is taken directly from BIND 4.9.1, which isunder both the Berkeley copyright above and also:@quotationPortions Copyright @copyright{} 1993 by Digital Equipment Corporation.Permission to use, copy, modify, and distribute this software for anypurpose with or without fee is hereby granted, provided that the abovecopyright notice and this permission notice appear in all copies, andthat the name of Digital Equipment Corporation not be used inadvertising or publicity pertaining to distribution of the document orsoftware without specific, written prior permission.@sc{the software is provided ``as is'' and digital equipment corp.disclaims all warranties with regard to this software, including allimplied warranties of merchantability and fitness.  in no event shalldigital equipment corporation be liable for any special, direct,indirect, or consequential damages or any damages whatsoever resultingfrom loss of use, data or profits, whether in an action of contract,negligence or other tortious action, arising out of or in connectionwith the use or performance of this software.}@end quotation@itemThe port to the DEC Alpha running OSF/1 (@code{alpha-dec-osf1}) wascontributed by Brendan Kehoe, using some code written by Roland McGrath.@itemThe floating-point printing function used by @code{printf} and friendswas written by Roland McGrath and @value{tege}.  The multi-precisioninteger functions used in that function are taken from GNU MP, which wascontributed by @value{tege}.@itemThe code to support Sun RPC is taken verbatim from Sun's@w{@sc{rpcsrc-4.0}} distribution, and is covered by this copyright:@quotation@displayCopyright @copyright{} 1984, Sun Microsystems, Inc.@end displaySun RPC is a product of Sun Microsystems, Inc. and is provided forunrestricted use provided that this legend is included on all tape mediaand as a part of the software program in whole or part.  Users may copyor modify Sun RPC without charge, but are not authorized to license ordistribute it to anyone else except as part of a product or programdeveloped by the user.@sc{sun rpc is provided as is with no warranties of any kind including thewarranties of design, merchantibility and fitness for a particularpurpose, or arising from a course of dealing, usage or trade practice.}Sun RPC is provided with no support and without any obligation on thepart of Sun Microsystems, Inc. to assist in its use, correction,modification or enhancement.@sc{sun microsystems, inc. shall have no liability with respect to theinfringement of copyrights, trade secrets or any patents by sun rpcor any part thereof.}In no event will Sun Microsystems, Inc. be liable for any lost revenueor profits or other special, indirect and consequential damages, even ifSun has been advised of the possibility of such damages.@displaySun Microsystems, Inc.2550 Garcia AvenueMountain View, California  94043@end display@end quotation@itemThe port to SGI machines running Irix 4 (@code{mips-sgi-irix4}) wascontributed by Tom Quinn.@itemThe port of the Mach and Hurd code to the MIPS architecture(@code{mips-@var{anything}-gnu}) was contribued by Kazumoto Kojima.@end itemize@c @bye

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?