[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