Installation errors while "Building setuid binary"

Question:

During installation, I see the following:

Building setuid binary ...
runascc.c:49:19: error: stdio.h: No such file or directory
runascc.c:50:20: error: stdlib.h: No such file or directory
runascc.c:51:20: error: string.h: No such file or directory
runascc.c:52:20: error: unistd.h: No such file or directory
runascc.c:53:22: error: sys/stat.h: No such file or directory
...

How do I correct this?

Answer:

These errors indicate that you do not have the standard C library header files installed on your system. In most Linux distributions, these are automatically installed with your compiler (GCC) as it is arguably rather useless without them.

You will need to install the appropriate package for your Linux distribution in order to make these files available to GCC. Under Red Hat, CentOS, and similar Red Hat-derived distributions, the package is usually called "glibc- devel". If you use yum, you can run:

yum install glibc-devel

If you do not use yum, you'll need to find the appropriate glibc-devel RPM on your installation CDs or the Internet, and install it manually using:

rpm -Uvh glibc-devel-*

If you're using Debian Linux, or a Debian-based distribution such as Ubuntu, the package will be called "libc6-dev", but we recommend running the following which will install all of the necessary build tools:

apt-get install build-essential