* implementor.texinfo (Compiler and OS Requirements): New section
authorKen Raeburn <raeburn@mit.edu>
Wed, 21 Jul 2004 03:29:46 +0000 (03:29 +0000)
committerKen Raeburn <raeburn@mit.edu>
Wed, 21 Jul 2004 03:29:46 +0000 (03:29 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16619 dc483132-0cff-0310-8789-dd5450dbe970

doc/ChangeLog
doc/implementor.texinfo

index 77b2a1b5877f8c199b1c8ef12d4ef4bdc9e1e084..04a862bb4ab23495566bf445300bea10aaa114bb 100644 (file)
@@ -7,6 +7,7 @@
        (Shared Library Theory): Fixed typo.
        (Advanced Shared Library Requirements): New section.
        (Thread Safety): Rewrite; add subsections.
+       (Compiler and OS Requirements): New section.
 
 2004-06-10  Ken Raeburn  <raeburn@mit.edu>
 
index b129af461684dfa373da5c985f3b86e5c6b6849f..a96e07144bc261d2eb640f19692fe5a781aed1c0 100644 (file)
@@ -65,6 +65,7 @@ This file contains internal implementor's information for the
 
 @menu
 * Introduction::                
+* Compiler and OS Requirements::  
 * Socket API::                  
 * IPv6 Support::                
 * Local Addresses::             
@@ -73,7 +74,7 @@ This file contains internal implementor's information for the
 * Shared Libraries::            
 @end menu
 
-@node Introduction, Socket API, Top, Top
+@node Introduction, Compiler and OS Requirements, Top, Top
 @chapter Introduction
 
 This file contains internal implementor's information for
@@ -81,7 +82,47 @@ This file contains internal implementor's information for
 from install.texi; eventually it will have more detailed information on
 the internals of the @value{PRODUCT}.
 
-@node Socket API, IPv6 Support, Introduction, Top
+@node Compiler and OS Requirements, Socket API, Introduction, Top
+@chapter Compiler and OS Requirements
+
+The basic Kerberos libraries are entirely written in C.
+However, we do assume full ANSI C (1989) support, typical 32- or
+64-bit twos-complement architectures (@code{char} is 8 bits,
+@code{short} is 16 bits, @code{int} is 32 bits, byte order is 1234 or
+4321), and a few aspects of ISO C 1999:
+
+@itemize @bullet
+@item
+support for inline functions, even if the keyword isn't @code{inline}
+@item
+64-bit arithmetic types (needed for sequence numbers in GSSAPI)
+@end itemize
+
+These are handled through the internal header file
+@file{k5-platform.h}.
+
+We also conditionally tailor code for the GNU C compiler in a few
+places where it helps performance or debugging, but the code should
+still work fine with other C compilers.
+
+On UNIX platforms, ... @i{(should outline what POSIX stuff we
+require)}.
+
+See also @ref{Advanced Shared Library Requirements}, for UNIX and
+Windows systems.
+
+Our makefiles are intended to support building from the top level with
+a POSIX-compliant version of @code{make}, and parallel builds using
+GNU @code{make}.  This sometimes comes at the cost of efficiency with
+non-GNU versions; for example, some targets in some directories will
+always be rebuilt with certain versions of @code{make}, even though
+the real dependencies are not out of date, because some versions of
+@code{make} don't understand how we're using phony intermediate
+targets to manage building in subdirectories in parallel builds.
+(Actually, this is more my view of how we've been doing things than
+official policy.  ---Ken)
+
+@node Socket API, IPv6 Support, Compiler and OS Requirements, Top
 @chapter Socket API
 
 Someone should describe the API subset we're allowed to use with