[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: start_of_data and RISCOS
From: |
Richard Stallman |
Subject: |
Re: start_of_data and RISCOS |
Date: |
Mon, 22 Jul 2002 09:19:15 -0600 (MDT) |
Currently the preference order for defining start_of_data is to use
the address of "etext" if BSD_SYSTEM is defined and DATA_SEG_BITS is
not, regardless of whether DATA_START is defined.
Since defining DATA_SEG_BITS also turns on the inclusive-or every time
a Lisp_Object handle is turned into a pointer, I'd like to reverse
that -- use DATA_START for start_of_data if it's defined, otherwise
consider doing the etext bit.
Using DATA_START first is ok provided you check all the platforms
on which DATA_START is defined and verify this won't break them.
You have started doing that:
I've done some poking around at the config files, and it looks
like MIPS running RISCOS 4 or 5 in BSD mode is the interesting case.
But under RISCOS, it may be the case that DATA_START and
BSD_SYSTEM are defined and DATA_SEG_BITS is not, so that it might be
using "&etext" for start_of_data even though DATA_START is 0x800000.
The next question is, does it actually make a difference if
start_of_data returns DATA_START instead of &etext? Let's look at the
places that use start_of_data and see if this would matter.
start_of_data is used mainly in some unex*.c files, and unexmips.c
does not use it. vm-limit.c is the only other use, and I think it
will be better off with a closer value of start_of_data. So I
conclude that your change is safe.