[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Gcc 2.3.3
Wasn't there a discussion in c.s.a.s.tech about this just now ?
Anyway, that the code is "baserel", means it has been compiled with the
-mbaserel flag in gcc. What this means, is that all (non-allocated)
memory references is relative to a base register. Which in turn means:
a) The code is shareable - several instances of the process will
only use as much memory as one instance. Except of course for
allocated memory such as stack space etc.
The text segment will be shared between multiple processes; each process
still has to have a private data and bss as well as stack. For some programs,
the space savings from sharable code is tiny because the programs use so much
data...
b) With the newer mints (mint-1.10 with patches or 1.11) the
program will not be flushed from memory after it is finished.
This means that it need only be loaded once from disk, later
invocations of the program will use the one allready in memory.
However, if memory runs low the program will be flushed.
The text segment is shared, but the data segment must be reread for every
invocation.
c) No more than 32k of static memory can be used. This is because
the 68000 only can handle offsets within 32k (16 bits).
16 bits is 64K, which is the actual limit, not 32K.
Erling
PS: Correct me if I said something wrong (probably needless to say...)
Heh... }-)
---
~ ATP/Unix 1.40 ~ This is my tagline.
Howard Chu, Sr. Systems Engineer Lloyd Internetworking
howard@lloyd.com 3031 Alhambra Drive
(916) 676-1147 - voice Suite 102
(916) 676-3442 - fax Cameron Park, CA 95682