building a.outs in COFF format

mb at ttidca.UUCP mb at ttidca.UUCP
Fri Jan 30 21:58:10 AEST 1987


In article <358 at ttidca.UUCP> mb at ttidca.UUCP (Michael Bloom) writes:
>Has anyone succeeded in getting either the emacs version of unexec.c
>or any other version of unexec to work with SysV Release 2?  

oops (how do you draw a red faced smiley face?).  This turned out to
be a case of RTFM.  

After spending some time poring over various .h files and the COFF and
link editor manuals, I found that the end of the text region and
start of the data region had to be on opposite sides of a 64kb (!!!)
boundary.  This is due to the way regions (text/data/bss) are mapped. 

While paging granularity itself is much smaller, 64kb is the
granularity used for protection (read/write/shared, etc).  I don't
know yet whether this is peculiar to the ICM-3216 architecture, or is
generic for SysVr2.  Would someone care to comment on this?

Using a value of 0xffff0000 for the ADDR_CORRECT macro, I was able to
produce a runnable xemacs.  It has some rather profound display problems
however (for a control, I built it with termcap instead of terminfo,
and used a termcap entry that I know to be correct fro emacs on vaxes
and pyramids), so I'm still working on it.   Once I'm satisfied, I'll
post an appropriate m- file to comp.emacs.

I'd like to hear from anyone who knows if this 64k region size is
typical of other system Vr2 ports.

- Michael Bloom



More information about the Comp.unix.wizards mailing list