(fix commit
c7f2147)
* configure.ac (parallel-mark): Provide information about
--disable-parallel-mark option instead of --enable-parallel-mark.
* doc/README.autoconf (Important options): Likewise.
* doc/README.solaris2: Likewise.
* doc/simple_example.html: Likewise.
* doc/README.DGUX386: Remove configure --enable-parallel-mark option
(as it is on by default now).
* doc/README.autoconf (Important options): Do not provide information
about --enable-full-debug which is no longer supported (since v7.0).
* doc/gcinterface.html: update information about parallel marker mode
in configure.
* doc/README.solaris2: Provide information about --disable-threads
option instead of --enable-threads=posix.
* doc/simple_example.html: Likewise.
AC_MSG_RESULT([$THREADS]) ])
AC_ARG_ENABLE(parallel-mark,
- [AC_HELP_STRING([--enable-parallel-mark],
- [parallelize marking and free list construction])],
+ [AC_HELP_STRING([--disable-parallel-mark],
+ [do not parallelize marking and free list construction])],
[case "$THREADS" in
no | none | single)
if test "${enable_parallel_mark}" != no; then
Finally, we support parallel mark for the SMP DG/UX machines.
To build the garbage collector do:
- ./configure --enable-parallel-mark
+ ./configure
make
make gctest
correctly so that "gctest" can find the shared library libgc.
Alternatively you can do a configuration
- ./configure --enable-parallel-mark --disable-shared
+ ./configure --disable-shared
to build only the static version of libgc.
1) Add the "--enable-gc-debug" flag during configuration.
2) Pass "CFLAGS=-DDEBUG_THREADS" to "make".
- In a machine with 4 CPUs (my own machine) the option parallel
- mark (aka --enable-parallel-mark) makes a BIG difference.
+ In a machine with 4 CPUs (my own machine), parallel mark makes
+ a BIG difference.
Takis Psarogiannakopoulos
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[same as prefix]
--enable-threads=TYPE choose threading package
- --enable-parallel-mark parallelize marking and free list construction
- --enable-gc-debug (--enable-full-debug before about 7.0)
- include full support for pointer back-tracing etc.
+ --disable-parallel-mark do not parallelize marking and free list
+ construction
+ --enable-gc-debug include full support for pointer back-tracing, etc.
Unless --prefix is set (or --exec-prefix or one of the more obscure options),
make install will install libgc.a and libgc.so in /usr/local/bin, which
would typically require the "make install" to be run as root.
-Most commonly --enable-threads=posix or will be needed. --enable-parallel-mark
-is recommended for multiprocessors if it is supported on the platform.
+It is not recommended to turn off parallel marking for multiprocessors unless
+a poor support of the feature on the platform.
SOLARIS THREADS:
-Threads support is enabled by configure "--enable-threads=posix" option.
-(In case of GCC compiler, multi-threading support is on by default.)
-This causes the collector to be compiled with -D GC_THREADS (or
--D GC_SOLARIS_THREADS) ensuring thread safety.
+Unless --disable-threads option is given, threads support is on by default in
+configure. This causes the collector to be compiled with -D GC_THREADS
+(or -D GC_SOLARIS_THREADS) ensuring thread safety.
This assumes use of the pthread_ interface. Old style Solaris threads
are no longer supported.
Thread-local allocation is now on by default. Parallel marking is on by
-default starting from GC v7.3 but it could be enabled or disabled manually
-by the corresponding "--enable/disable-parallel-mark" options.
+default starting from GC v7.3 but it could be disabled manually
+by configure --disable-parallel-mark option.
It is also essential that gc.h be included in files that call pthread_create,
pthread_join, pthread_detach, or dlopen. gc.h macro defines these to also do
If you are concerned with multiprocessor performance and scalability,
you should consider enabling and using thread local allocation.
<P>
-If your platform
-supports it, you should build the collector with parallel marking support
-(<TT>-DPARALLEL_MARK</tt>, or <TT>--enable-parallel-mark</tt>).
+If your platform supports it, you should build the collector with parallel
+marking support (<TT>-DPARALLEL_MARK</tt>); configure has it on by default.
<P>
If the collector is used in an environment in which pointer location
information for heap objects is easily available, this can be passed on
</font>
<H3><FONT COLOR=green>Threads</font></h3>
<FONT COLOR=green>
-If you need thread support, configure the collector with
+If you do not need thread support, configure the collector with
</font>
<PRE style="color:green">
---enable-threads=posix --enable-parallel-mark
+--disable-threads
</pre>
<FONT COLOR=green>
-instead of
-<TT>--disable-threads</tt>
-If your target is a real old-fashioned uniprocessor (no "hyperthreading",
-etc.) you will want to omit <TT>--enable-parallel-mark</tt>.
+Alternatively, if your target is a real old-fashioned uniprocessor (no
+"hyperthreading", etc.), you may just want to turn off parallel marking with
+<TT>--disable-parallel-mark</tt>.
</font>
<H3><FONT COLOR=green>C++</font></h3>
<FONT COLOR=green>