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