[comp.unix.microport] XBBS compile on uport 286

lester@ka3adu.UUCP (lester) (05/25/89)

I've been having a problem getting XBBS to compile on uport 286 
ver 2.3. I'm currently running XBBS ver 7.2.5 and am try to upgrade to the
latest version. I had this problem when I first tried to compile XBBS last 
year and somebody had a simple fix for it. 

The error I get is;


Assembler: bbsc1.c
          aline 13300  : Hash table overflow


The line in the Makefile reads;

bbsc1.o: bbsc1.c bbsc12.h
	cc -c -Ml -DSYSV -O bbsc1.c

I've tried it with and wit out the -O option and get the same results.

There was a pretty simple fix for this but I can't remeber what it was.

Can anyone remeber what the fix was ?

Thanks, Bob KA3ADU
uunet!wa3wbu!ka3adu!lester

-- 
Bob Lester KA3ADU                |           UUCP: uunet!wa3wbu!ka3adu!lester  
6330 Somerset St.                |           Packet: KA3ADU @ AK3P    
Harrisburg, PA 17111             |           Voice: (717) 561-0205    

lcc@ucscb.UCSC.EDU (73701000) (05/25/89)

In article <486@ka3adu.UUCP> lester@ka3adu.UUCP (lester) writes:
>I've been having a problem getting XBBS to compile on uport 286 
>ver 2.3. I'm currently running XBBS ver 7.2.5 and am try to upgrade to the
>latest version. I had this problem when I first tried to compile XBBS last 
>year and somebody had a simple fix for it. 
>
>The error I get is;
>
>Assembler: bbsc1.c
>          aline 13300  : Hash table overflow

That's bad code generation comming from the back end of the compiler. It
most likely not a data structure that is too big because the front end of the 
compiler does range checking that I think would have caught that 286
pcc has several known bugs concerning code generation. You might try getting
a different compiler. MetaWare Inc. of Santa Cruz, CA has a good one for 286
UNIX that is very solid and produces very optimized, fast executing code.

Ken Chapin

plocher%sally@Sun.COM (John Plocher) (05/26/89)

In article <486@ka3adu.UUCP> lester@ka3adu.UUCP (lester) writes:
>I've been having a problem getting XBBS to compile on uport 286 
>ver 2.3. I'm currently running XBBS ver 7.2.5 and am try to upgrade to the
>Assembler: bbsc1.c
>          aline 13300  : Hash table overflow

Simple fix.  As I recall XBBS is made up of a few HUGE source files.  Simply
split the .c files into smaller chunks.

aline == At LINE 13300

Hash Table overflow == too many symbols defined in this C source file.
You are allowed a symbol table of 64k in size (not 64K symbols!) and this
file is generating more than that.

   -John Plocher

(I took xbbs vers 6 or so and split it into one file/function and it compiled
without any problems.  I trashed it because it (at the time) was a rather
hokey BBS system. IHMO)

mike@cimcor.mn.org (Michael Grenier) (05/28/89)

From article <7664@saturn.ucsc.edu>, by lcc@ucscb.UCSC.EDU (73701000):
# In article <486@ka3adu.UUCP> lester@ka3adu.UUCP (lester) writes:
#>I've been having a problem getting XBBS to compile on uport 286 
#>ver 2.3. I'm currently running XBBS ver 7.2.5 and am try to upgrade to the
#>latest version. I had this problem when I first tried to compile XBBS last 
#>year and somebody had a simple fix for it. 
#>
#>The error I get is;
#>
#>Assembler: bbsc1.c
#>          aline 13300  : Hash table overflow
# 
# That's bad code generation comming from the back end of the compiler. It
# most likely not a data structure that is too big because the front end of the 
# compiler does range checking that I think would have caught that 286
# pcc has several known bugs concerning code generation. You might try getting
# a different compiler. MetaWare Inc. of Santa Cruz, CA has a good one for 286
# UNIX that is very solid and produces very optimized, fast executing code.
# 


It has nothing to do with the compiler but is an assembler limitation.
This was fixed but Microport didn't have time to incorporate it into
the version 2.4 SDS Release. Basically the symbol table was set up as
an array of structures containing the name and various other information
(see COFF structures for a hint) and was limited to the Intel 64K
array size limitation. This was updated to be an array of pointers
to these structures which were allocated as needed limiting the assembler
to 16K  (sizeof (struct *) times 16K = 64K) symbols which should be plenty.

Check if Microport has any support left for an updated assembler.
This Microport V/AT system doesn't have any trouble compiling the XBBS
system. 

   -Mike Grenier
    mike@cimcor.mn.org
    uunet!rosevax!cimcor!mike