diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-04-07 08:01:30 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-04-07 08:01:30 +0000 |
commit | 4eac4b716a6e15c801da6aa27c301a092871ab02 (patch) | |
tree | e6d8fcc8767be9361e18c552ee43ecfc3b4fdea8 /boehm-gc/README.linux | |
parent | 48d678ffe51c7ad953681d9d1887eeac5d6ec2d7 (diff) | |
download | gcc-4eac4b716a6e15c801da6aa27c301a092871ab02.tar.gz |
Initial revision
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26246 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc/README.linux')
-rw-r--r-- | boehm-gc/README.linux | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/boehm-gc/README.linux b/boehm-gc/README.linux new file mode 100644 index 00000000000..ffe735bc182 --- /dev/null +++ b/boehm-gc/README.linux @@ -0,0 +1,39 @@ +See README.alpha for Linux on DEC AXP info. This file applies to +Linux/Intel. + +Incremental GC is supported. + +Dynamic libraries are supported on an ELF system. A static executable +should be linked with the gcc option "-Wl,-defsym,_DYNAMIC=0". + +The collector appears to work with Linux threads. We have seen +intermittent hangs in sem_wait. So far we have been unable to reproduce +these unless the process was being debugged or traced. Thus it's +possible that the only real issue is that the debugger loses +signals on rare occasions. + +The garbage collector uses SIGPWR and SIGXCPU if it is used with +Linux threads. These should not be touched by the client program. + +To use threads, you need to abide by the following requirements: + +1) You need to use LinuxThreads (which are included in libc6). + + The collector relies on some implementation details of the LinuxThreads + package. It is unlikely that this code will work on other + pthread implementations (in particular it will *not* work with + MIT pthreads). + +2) You must compile the collector with -DLINUX_THREADS and -D_REENTRANT + specified in the Makefile. + +3) Every file that makes thread calls should define LINUX_THREADS and + _REENTRANT and then include gc.h. Gc.h redefines some of the + pthread primitives as macros which also provide the collector with + information it requires. + +4) Currently dlopen() is probably not safe. The collector must traverse + the list of libraries maintained by the runtime loader. That can + probably be an inconsistent state when a thread calling the loader is + is stopped for GC. (It's possible that this is fixable in the + same way it is handled for SOLARIS_THREADS, with GC_dlopen.) |