Tetsu Ushijima

Information about the gc package

Tetsu Ushijima, tu@pobox.com
19970820; revised 20000505

The latest non-alpha gc package (the Boehm-Demers-Weiser conservative garbage collector) is gc4.14.tar.gz , available from www.hpl.hp.com . Rather old versions are also available from reality.sgi.com and parcftp.xerox.com.

See Hans-J. Boehm's gc page for the official information about the gc package.

I've installed several versions of the gc package on some platforms. I concentrated my efforts on building gc.a and on making gctest to work. Here are some notes on installing the gc package.

4.12: FreeBSD 2.2.1-RELEASE

No problem.

4.12: MS-DOS 3.30 with DJGPP 2.01: NEC PC-9801DA

I used binutils 2.8.1, gcc 2.7.2.1, and make 3.75.

Use ``djtarx -d ...'' to unpack a gzipped tar file. It fails to extract ``gc/solaris_pthreads.c'' since another file ``gc/solaris_threads.c'' has been extracted as ``gc/solaris_.c''. You can type RET to discard this file when prompted for a new file name. The package contains two copies of `gc/include/gc_cpp.h'. When you are prompted for a new file name, simply type RET.

Type ``make -f Makefile.dj gc.a'' to create the file gc.a.

You will see warning messages ``config.h:198: warning: `DJGPP' redefined'', which can be safely ignored.

Type ``make -f Makefile.dj KandRtest'' to test. gctest took about 18 minutes to complete.

4.12: NEWS-OS 4.2.1R

Sony CC 2.11 doesn't support concatenations of string constants. You need to modify test.c (line 860).

[Sony CC 2.11 is the C compiler bundled in NEWS-OS 4.2.1R.]

4.12: SunOS 5.5.1: Sun Ultra 1

I used gcc 2.7.2

No problem.

4.11: FreeBSD 2.2.1-RELEASE

No problem.

4.11: MS-DOS 3.30 with DJGPP 2.01: NEC PC-9801DA

I used binutils 2.8.1, gcc 2.7.2.1, and make 3.75.

Use ``djtarx -d ...'' to unpack a gzipped tar file. The package contains two copies of `gc/include/gc_cpp.h'. When you are prompted for a new file name, simply type RET.

The file Makefile.dj is corrupted around line 75. Comment out the line that starts with ``directory''. This bug is fixed in 4.12.

The definitions of DATASTART and STACKBOTTOM in config.h don't seem right. You should change these definitions as done in 4.12.

The file os_dep.c has a typo in line 96. This line should be: ``typedef long unsigned int caddr_t;''. This bug is fixed in 4.12.

Type ``make -f Makefile.dj'' to create the file gc.a.

You will see warning messages ``config.h:193: warning: `DJGPP' redefined'', which can be safely ignored.

Type ``make -f Makefile.dj KandRtest'' to test. gctest took about 23 minutes to complete.

4.11: NEWS-OS 4.2.1R

The file gc_priv.h has a typedef for ptrdiff_t (line 23). You need to remove this typedef because <stddef.h> does define it. This problem is fixed in 4.12.

You need to modify Makefile so that mach_dep.o will be made from mips_ultrix_mach_dep.s. This problem is fixed in 4.12.

A non-standard C compiler such as Sony CC 2.11 suffers from inconsistencies between gc_typed.h and typd_mlc.c. You need to replace ``void *'' with ``GC_PTR'' in gc_typed.h. This problem is fixed in 4.12.

Sony CC 2.11 doesn't support concatenations of string constants. You need to modify test.c (line 860).

[Sony CC 2.11 is the C compiler bundled in NEWS-OS 4.2.1R.]

4.11: SunOS 5.5.1: Sun Ultra 1

I used gcc 2.7.2.

No problem.