aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8.1/boehm-gc/doc/README.sgi
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2016-02-04 18:51:25 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2016-02-04 18:51:25 +0000
commitedbbe53c4ffa154a5f9ae3f89ba8105993d8800e (patch)
tree4cedb380a14027d9c4d1e531c2340c43cbd79175 /gcc-4.8.1/boehm-gc/doc/README.sgi
parenta4ca82cac69c3147143d7b4b4d7cdeb5e02f20ef (diff)
parent3186be22b6598fbd467b126347d1c7f48ccb7f71 (diff)
downloadtoolchain_gcc-edbbe53c4ffa154a5f9ae3f89ba8105993d8800e.tar.gz
toolchain_gcc-edbbe53c4ffa154a5f9ae3f89ba8105993d8800e.tar.bz2
toolchain_gcc-edbbe53c4ffa154a5f9ae3f89ba8105993d8800e.zip
Merge "Check in a pristine copy of GCC 4.8.1."
Diffstat (limited to 'gcc-4.8.1/boehm-gc/doc/README.sgi')
-rw-r--r--gcc-4.8.1/boehm-gc/doc/README.sgi41
1 files changed, 41 insertions, 0 deletions
diff --git a/gcc-4.8.1/boehm-gc/doc/README.sgi b/gcc-4.8.1/boehm-gc/doc/README.sgi
new file mode 100644
index 000000000..7bdb50a4e
--- /dev/null
+++ b/gcc-4.8.1/boehm-gc/doc/README.sgi
@@ -0,0 +1,41 @@
+Performance of the incremental collector can be greatly enhanced with
+-DNO_EXECUTE_PERMISSION.
+
+The collector should run with all of the -32, -n32 and -64 ABIs. Remember to
+define the AS macro in the Makefile to be "as -64", or "as -n32".
+
+If you use -DREDIRECT_MALLOC=GC_malloc with C++ code, your code should make
+at least one explicit call to malloc instead of new to ensure that the proper
+version of malloc is linked in.
+
+Sproc threads are not supported in this version, though there may exist other
+ports.
+
+Pthreads support is provided. This requires that:
+
+1) You compile the collector with -DGC_IRIX_THREADS specified in the Makefile.
+
+2) You have the latest pthreads patches installed.
+
+(Though the collector makes only documented pthread calls,
+it relies on signal/threads interactions working just right in ways
+that are not required by the standard. It is unlikely that this code
+will run on other pthreads platforms. But please tell me if it does.)
+
+3) Every file that makes thread calls should define IRIX_THREADS 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) pthread_cond_wait and pthread_cond_timed_wait should be prepared for
+premature wakeups. (I believe the pthreads and realted standards require this
+anyway. Irix pthreads often terminate a wait if a signal arrives.
+The garbage collector uses signals to stop threads.)
+
+5) It is expensive to stop a thread waiting in IO at the time the request is
+initiated. Applications with many such threads may not exhibit acceptable
+performance with the collector. (Increasing the heap size may help.)
+
+6) The collector should not be compiled with -DREDIRECT_MALLOC. This
+confuses some library calls made by the pthreads implementation, which
+expect the standard malloc.
+