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"
/usr/include/sys/limits.hand 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).
/usr/include/sys/ioctl.hsurrounded by
#ifndef _IOCTL_H
#define _IOCTL_H
...
#endif
to prevent multiple includes.
/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.
/usr/include/rpc/types.hcopy 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
/usr/include/sys/un.hsuch 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
/usr/include/math.hTo 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