Changes to the System Header Files

Information for ISC Users : Changes to the System Header Files
Previous: Things needed for compiling the sources
Next: make World

## 3. Changes to the System Header Files

You have to change some of the standard header files supplied with your version of Interactive. You also need to change some of the include files in the gcc-lib/include directory.

Let us say the gcc-files are in directory

`/usr/local/lib/gcc-lib/i[345]86-isc[34].[0-9]/2.6.x`

referred to as `"gcc-lib"`

### 3.1. `/usr/include/sys/limits.h`

and `gcc-lib/include/sys/limits.h`

              #ifndef OPEN_MAX
              #ifdef ISC
              #define OPEN_MAX        256
              #else
              #define OPEN_MAX        20
              #endif
              #endif

`OPEN_MAX` had to be increased to prevent Xlib Errors (max no. of clients reached).

### 3.2. `/usr/include/sys/ioctl.h`

surrounded by

            #ifndef _IOCTL_H
            #define _IOCTL_H
            ...
            #endif

to prevent multiple includes.

### 3.3. `/usr/include/errno.h`

(and the corresponding gcc-include-file) add

            #include <net/errno.h>

because of EWOULDBLOCK undefined in several places regarding lbx. Surround `/usr/include/net/errno.h` with

            #ifndef _NET_ERRNO_H
            #define _NET_ERRNO_H
            ...
            #endif

to prevent multiple includes were `<net/errno.h>` is explicit included from the sources.

### 3.4. `/usr/include/rpc/types.h`

copy this file to `gcc-lib/include/rpc/types.h` and change the declaration of malloc() to

             #if !defined(__cplusplus)
             extern char *malloc();
             #endif

Note that this is only necessary if you want to build Fresco

### 3.5. `/usr/include/sys/un.h`

such a file does not exist on Interactive. You may like to generate it, if you don't like a warning from depend. It isn't needed to compile the sources successfully.

You could use the following to produce it:

             #ifndef X_NO_SYS_UN
             struct  sockaddr_un {
                     short   sun_family;             /* AF_UNIX */
                     char    sun_path[108];          /* path name (gag) */
             };
             #endif

### 3.6. `/usr/include/math.h`

To use the Inline Math package you have to change your existing math.h. Please note, the way I include the new Header file, is different than suggested in inline-math's README.

Please add the following at the bottom of math.h, before the last #endif

    #if defined(UseInlineMath)

    /* Needed on ISC __CONCAT, PI */
    #ifndef __CONCAT
    /*
     * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
     * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
     * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
     * in between its arguments.  __CONCAT can also concatenate double-quoted
     * strings produced by the __STRING macro, but this only works with ANSI C.
     */
    #if defined(__STDC__) || defined(__cplusplus)
    #define __CONCAT(x,y)   x ## y
    #define __STRING(x)     #x
    #else   /* !(__STDC__ || __cplusplus) */
    #define __CONCAT(x,y)   x/**/y
    #define __STRING(x)     "x"
    #endif  /* !(__STDC__ || __cplusplus) */
    #endif

    #ifndef PI
    #define PI M_PI
    #endif

    #include "/usr/local/include/i386/__math.h"
    #endif

Information for ISC Users : Changes to the System Header Files
Previous: Things needed for compiling the sources
Next: make World