# 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.