[comp.windows.x] Help needed on SYSV Compiler Problem

JOEH@BNR.BITNET (Joe Hatz, R.J.) (11/17/87)

We are porting X V11 to a SysV lookalike.  We actually have
the SysV.1 and SysV.2 compilers, both of which fail with the same
internal compiler error:

   "<filename>", line <nnn>: compiler error: dimension table overflow

All cases I have found thus far refer to lines within header files,
at the head or tail of a typedef.  It would appear that the error
is related to the extensive use of typedefs in the X code.

Has anyone else encountered this or a similar problem?
Any advice would be much appreciated.

Joe Hatz,                 (Netnorth ID is: JOEH@BNR)
Bell Northern Research,
Box 3511, Station C,
Ottawa, Canada.
Phone (613)-727-4622

pokey@well.UUCP (Jef Poskanzer) (11/18/87)

In the referenced message, JOEH@BNR.BITNET (Joe  Hatz, R.J.) wrote:
}We are porting X V11 to a SysV lookalike.  We actually have
}the SysV.1 and SysV.2 compilers, both of which fail with the same
}internal compiler error:
}
}   "<filename>", line <nnn>: compiler error: dimension table overflow
}
}All cases I have found thus far refer to lines within header files,
}at the head or tail of a typedef.  It would appear that the error
}is related to the extensive use of typedefs in the X code.
}
}Has anyone else encountered this or a similar problem?
}Any advice would be much appreciated.

I recently ported X11 to A/UX and to UniPlus+, both SysV-derived
systems.  I got this same error on a few files.  In each case I was
able to get around the problem by breaking the file up into two or
three smaller ones.  You might also try getting rid of any includes
that are not used -- for instance, there's at least one file in
X11r1 that includes stdio.h but doesn't use it, and stdio.h is >huge<.
---
Jef

        Jef Poskanzer   jef@lbl-rtsg.arpa   ...well!pokey

P.S. Don't bother asking how you can obtain the A/UX port I did.
I don't work for UniSoft any more, and I doubt they will be selling
it anytime in the near future.  On the other hand, if you want to
hire me to do a similar port for you, drop me a line...

mumble%karl@tut.cis.ohio-state.edu.UUCP (11/18/87)

JOEH@BNR.BITNET writes:
   We are porting X V11 to a SysV lookalike.  We actually have
   the SysV.1 and SysV.2 compilers, both of which fail with the same
   internal compiler error:
      "<filename>", line <nnn>: compiler error: dimension table overflow
   ...
   Has anyone else encountered this or a similar problem?

Yes, I've seen that, in a 3B15 SysV.2.1.1 system I used when at AT&T.
It was necessary to rebuild the compiler with a bigger symbol table
size.  More recent releases of the compiler arrange to malloc() space
as required, which is of course The Right Way to do it anyway.  See if
you can get a more recent release.
-=-
Karl

bilbo.geoff@SEAS.UCLA.EDU.UUCP (11/19/87)

> We are porting X V11 to a SysV lookalike.  We actually have
> the SysV.1 and SysV.2 compilers, both of which fail with the same
> internal compiler error:
...
> Has anyone else encountered this or a similar problem?
> Any advice would be much appreciated.

We've gotten a couple of problems on SysV (Microport) here at Locus.
One is the old "too much defining" from the preprocessor;  the other
only arises when you compile with -g, which gives you "fakename table
overflow".  (The fakename table has all of 99 entries by default).

Both of these problems can be cured easily if you have source:
just grep for the offending message;  the corresponding limit will
be easy to spot in the nearby code.  You can then grep everything
to find where this limit is defined, and increase it.

If you don't have source, you can start by complaining to your vendor.
Since this rarely bears quick fruit, a (tedious) workaround is to
ifdef parts of header files, so that each routine only gets what it
needs.  You may have to break some routines like dispatch.c in order
to get the required part of the header files down far enough.

	Geoff Kuenning	geoff@lcc.ucla.edu	geoff@ITcorp.com