# Copyright (c) 1993 Xerox Corporation. All rights reserved. # # pcrnotes.txt # # Demers, August 3, 1993 Here is what I had to do to bring up Version 3.2 on ppcr. -1: Note that "make depend" doesn't work with the Solaris/SunPro C compiler, both because of their -xM flag and because of their stupid non-Ansi CPP. I changed it to use gcc; this gets a slightly wrong set of includes, but they're wrong only for the system files that gnu replaces, and those aren't changing anyway ... 0. Changed Makefile to default to make pcr. 1. Changed PCR-Makefile to make only gc.o by default. 2. Changed PCRDIR in PCR-Makefile; removed /pcr/ from pcr include paths there. 3. Fixed pcr include file names: vd/PCR←VD.h in os←dep.c th/PCR←Th.h in gc←private.h th/PCR←ThCrSec.h in gc←private.h th/PCR←ThCtl.h in gc←private.h il/PCR←IL.h in mark←roots.c mm/PCR←MM.h in mark←roots.c th/PCR←ThCtl.h in mark←roots.c il/PCR←IL.h in misc.c mm/PCR←MM.h in pcr←interface.c 4. Note the README file suggests configuration info is at "the beginning of gc.h" rather than in config.h. 5. Added DCL←LOCK←STATE; to misc.c:GC←enable←incremental, stubborn.c:GC←change←stubborn and stubborn.c:GC←end←stubborn←change. 6. Fixed syntax error in GC←read←dirty in os←dep.c. 7. Added cast to PCR←Any for "all" argument to GC←old←allocator->mmp←enumerate in mark←roots.c:GC←push←roots. 8. In stubborn.c:GC←end←stubborn←change should my←current have a volatile declaration? I added several "volatile"s per your mail message. 9. The call to PCR←VD←Clear in os←dep.c was passing the number of pages rather than the number of bytes; the corrected line (807) is if (PCR←VD←Clear(GC←vd←base, NPAGES*HBLKSIZE, GC←grungy←bits) != PCR←ERes←okay) { 10. GC←read←dirty() was changed to enable write protection on newly-added heap sects. The added code (os←dep.c:795) is /* lazily enable dirty bits on newly added heap sects */ { static int onhs = 0; int nhs = GC←n←heap←sects; for( ; onhs < nhs; onhs++ ) { PCR←VD←WriteProtectEnable( GC←heap←sects[onhs].hs←start, GC←heap←sects[onhs].hs←bytes ); } } 11. I had to change ppcr to WriteProtectDisable stacks and thread descriptors explicitly. This doesn`t seem to have been a big deal.