1@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2@c 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. 3@c This is part of the GCC manual. 4@c For copying conditions, see the file gcc.texi. 5 6@node Portability 7@chapter GCC and Portability 8@cindex portability 9@cindex GCC and portability 10 11GCC itself aims to be portable to any machine where @code{int} is at least 12a 32-bit type. It aims to target machines with a flat (non-segmented) byte 13addressed data address space (the code address space can be separate). 14Target ABIs may have 8, 16, 32 or 64-bit @code{int} type. @code{char} 15can be wider than 8 bits. 16 17GCC gets most of the information about the target machine from a machine 18description which gives an algebraic formula for each of the machine's 19instructions. This is a very clean way to describe the target. But when 20the compiler needs information that is difficult to express in this 21fashion, ad-hoc parameters have been defined for machine descriptions. 22The purpose of portability is to reduce the total work needed on the 23compiler; it was not of interest for its own sake. 24 25@cindex endianness 26@cindex autoincrement addressing, availability 27@findex abort 28GCC does not contain machine dependent code, but it does contain code 29that depends on machine parameters such as endianness (whether the most 30significant byte has the highest or lowest address of the bytes in a word) 31and the availability of autoincrement addressing. In the RTL-generation 32pass, it is often necessary to have multiple strategies for generating code 33for a particular kind of syntax tree, strategies that are usable for different 34combinations of parameters. Often, not all possible cases have been 35addressed, but only the common ones or only the ones that have been 36encountered. As a result, a new target may require additional 37strategies. You will know 38if this happens because the compiler will call @code{abort}. Fortunately, 39the new strategies can be added in a machine-independent fashion, and will 40affect only the target machines that need them. 41