ded
Fixed Header Files
Contents|Index|Previous|Next
Fixed
header files
GNU CC needs to install corrected
versions of some system header files. This is because most target systems
have some header files that won’t work with GNU CC unless they are changed.
Some have bugs, some are incompatible with ANSI C, and some depend on special
features of other compilers.
Installing GNU CC automatically
creates and installs the fixed header files, by running a program called
fixincludes
(or for certain targets an alternative such as ‘fixinc.svr4’).
Normally, you don’t need to pay attention to this. But there are cases
where it doesn’t do the right thing automatically.
-
If you update the system’s header
files, such as by installing a new system version, the fixed header files
of GNU CC are not automatically updated. The easiest way to update them
is to reinstall GNU CC. (If you want to be clever, look in the makefile
and you can find a shortcut.)
-
On some systems, in particular
SunOS 4, header file directories contain machine-specific symbolic links
in certain places. This makes it possible to share most of the header files
among hosts running the same version of SunOS 4 on different machine models.
-
The programs that fix the header
files do not understand this special way of using symbolic links; therefore,
the directory of fixed header files is good only for the machine model
used to build it.
-
In SunOS 4, only programs that
look inside the kernel will notice the difference between machine models.
Therefore, for most purposes, you need not be concerned about this.
-
It is possible to make separate
sets of fixed header files for the different machine models, and arrange
a structure of symbolic links so as to use the proper set, but you’ll have
to do this by hand.
-
On Lynxos, GNU CC by default
does not fix the header files. This is because bugs in the shell cause
the fixincludes script to fail.
-
This means you will encounter
problems due to bugs in the system header files. It may be no comfort that
they aren’t GNU CC’s fault, but it does mean that there’s nothing for us
to do about them.
0