[comp.unix.xenix] "too big" error message under Xenix

skrenta@eecs.nwu.edu (Richard Skrenta) (10/25/88)

Just a simple question here.  I'm trying to get Micro Gnu Emacs to work
under 286 Xenix 2.0.4.  It compiles fine and makes a 67K executable.  When
I try to run it, however, it says "mg: too big".  I've run programs much
bigger than this, and I can't find any reference to that error message in
my manuals.  Does anyone know what "too big" refers to here?

Thanks

Rich Skrenta

debra@alice.UUCP (Paul De Bra) (10/26/88)

In article <3700006@eecs.nwu.edu> skrenta@eecs.nwu.edu (Richard Skrenta) writes:
>Just a simple question here.  I'm trying to get Micro Gnu Emacs to work
>under 286 Xenix 2.0.4.  It compiles fine and makes a 67K executable.  When
>I try to run it, however, it says "mg: too big"...

"too big" could mean that the program is too big (you should try "size" too
find out how big it is on startup, not ls -l), but it can also mean that
you tried to put more than 64k in one segment, without the loader noticing.
(this is possible because the loader does not take the stack into account)

Paul.
-- 
-------------------------------------------------------------------------
|debra@research.att.com   | uunet!research!debra     | att!grumpy!debra |
-------------------------------------------------------------------------

root@conexch.UUCP (Larry Dighera) (10/26/88)

In article <3700006@eecs.nwu.edu> skrenta@eecs.nwu.edu (Richard Skrenta) writes:
>Just a simple question here.  I'm trying to get Micro Gnu Emacs to work
>under 286 Xenix 2.0.4.  It compiles fine and makes a 67K executable.  When
>I try to run it, however, it says "mg: too big".  I've run programs much
>bigger than this, and I can't find any reference to that error message in
>my manuals.  Does anyone know what "too big" refers to here?

I don't have the answer to this one, but I can shed a little light on
the subject.

Since installing VP/ix on conexch I have been having similar errors when
attempting to run, of all things, uustat, and attempting to run spell
results in:

        table = malloc(0xc848) fails
        sbrk(0) = 0x3868
        spell: cannot initialize hash table

This is with Xenix 386 2.3.0.  I noticed that vpixadm added two additional
PATH entries to an already long PATH string.  So, first I removed several
shell functions from my environment; no change.  Next, I shortened the 
PATH to just /bin:/usr/bin.  Success!  All runs as before.  

I have no explanation for this.  It is annoying.

Larry Dighera

-- 
USPS: The Consultants' Exchange, PO Box 12100, Santa Ana, CA  92712
TELE: (714) 842-6348: BBS (N81); (714) 842-5851: Xenix guest account (E71)
UUCP: conexch Any ACU 2400 17148425851 ogin:-""-ogin:-""-ogin: nuucp
UUCP: ...!uunet!turnkey!conexch!root || ...!trwrb!ucla-an!conexch!root

chip@vector.UUCP (Chip Rosenthal) (10/27/88)

In article <3700006@eecs.nwu.edu> skrenta@eecs.nwu.edu (Richard Skrenta) writes:
>I try to run it, however, it says "mg: too big".
>Does anyone know what "too big" refers to here?

Yeah...your initialized data/stack segment is greater than 64K.  Well,
you might ask, why does the compiler allow such a thing to be created?
The reason is that XENIX 286 uses a fixed stack which is allocated at run
time.  It is only at this time that it can see that the thing won't
shoehorn into memory.

The answer is obvious:  decrease your stack size or decrease the amount
of static data in this segment.  The former may be done with the fixhdr(C)
command, which allows you to specify a stack size.  The latter may be done
by compiling with the -Mt flag.  For example, -Mt32 says any data items
larger than 32 bytes should be moved into another segment.  Of course,
you must be using either the large or the huge memory model to do this.
-- 
Chip Rosenthal     chip@vector.UUCP | I've been a wizard since my childhood.
Dallas Semiconductor   214-450-0486 | And I've earned some respect for my art.