You need the GCC-3.0.3 rev (DG/UX) compiler to build this tree.
This compiler has the new "dgux386" threads package implemented.
It also supports the switch "-pthread" needed to link correctly
- the DG/UX's -lrte -lthread with -lgcc and the system's -lc.
+ the DG/UX's -lrte -lthread with -lgcc and the system's -lc.
Finally we support parralleli-mark for the SMP DG/UX machines.
To build the garbage collector do:
-
+
./configure --enable-parallel-mark
make
make gctest
Alternatively you can do a configuration
./configure --enable-parallel-mark --disable-shared
-
+
to build only the static version of libgc.
-
+
To enable debugging messages please do:
- 1) Add the "--enable-gc-debug" flag during configuration.
+ 1) Add the "--enable-gc-debug" flag during configuration.
2) Edit the file linux-threads.c and uncommnect the line:
- /* #define DEBUG_THREADS 1 */ to --->
+ /* #define DEBUG_THREADS 1 */ to --->
#define DEBUG_THREADS 1
Then give "make" as usual.
-
+
In a machine with 4 CPUs (my own machine) the option parallel
mark (aka --enable-parallel-mark) makes a BIG difference.
problems with stylistic corrections made by me.
---- ltconfig.ORIG Mon Jan 28 20:22:18 2002
-+++ ltconfig Mon Jan 28 20:44:00 2002
+--- ltconfig.ORIG Mon Jan 28 20:22:18 2002
++++ ltconfig Mon Jan 28 20:44:00 2002
@@ -689,6 +689,11 @@
pic_flag=-Kconform_pic
fi
@@ -718,6 +723,12 @@
# We can build DLLs from non-PIC.
;;
-
+
+ dgux*)
+ pic_flag='-KPIC'
+ link_static='-Bstatic'
@@ -1154,6 +1165,22 @@
fi
;;
-
+
+ dgux*)
+ ld_shlibs=yes
+ # For both C/C++ ommit the deplibs. This is because we relying on the fact
# no search path for DLLs.
@@ -1497,7 +1524,7 @@
;;
-
+
dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+ archive_cmds='$CC -shared -h $soname -o $lib $libobjs $linkopts'
;;
@@ -2092,12 +2119,17 @@
;;
-
+
dgux*)
- version_type=linux
+ version_type=dgux
+ hardcode_shlibpath_var=no
+ ac_cv_archive_cmds_needs_lc=no
;;
-
+
sysv4*MP*)
---- ltmain.sh.ORIG Mon Jan 28 20:31:18 2002
-+++ ltmain.sh Tue Jan 29 00:11:29 2002
+--- ltmain.sh.ORIG Mon Jan 28 20:31:18 2002
++++ ltmain.sh Tue Jan 29 00:11:29 2002
@@ -1072,11 +1072,38 @@
- esac
- ;;
-
+ esac
+ ;;
+
+ -thread*)
-+ # DG/UX GCC 2.95.x, 3.x.x rev (DG/UX) links -lthread
-+ # with the switch -threads
-+ if test "$arg" = "-threads"; then
-+ case "$host" in
-+ i[3456]86-*-dgux*)
-+ deplibs="$deplibs $arg"
-+ continue
-+ ;;
-+ esac
-+ fi
-+ ;;
++ # DG/UX GCC 2.95.x, 3.x.x rev (DG/UX) links -lthread
++ # with the switch -threads
++ if test "$arg" = "-threads"; then
++ case "$host" in
++ i[3456]86-*-dgux*)
++ deplibs="$deplibs $arg"
++ continue
++ ;;
++ esac
++ fi
++ ;;
+
+ -pthread*)
-+ # DG/UX GCC 2.95.x, 3.x.x rev (DG/UX) links -lthread
-+ # with the switch -pthread
-+ if test "$arg" = "-pthread"; then
-+ case "$host" in
-+ i[3456]86-*-dgux*)
-+ deplibs="$deplibs $arg"
-+ continue
-+ ;;
-+ esac
-+ fi
-+ ;;
++ # DG/UX GCC 2.95.x, 3.x.x rev (DG/UX) links -lthread
++ # with the switch -pthread
++ if test "$arg" = "-pthread"; then
++ case "$host" in
++ i[3456]86-*-dgux*)
++ deplibs="$deplibs $arg"
++ continue
++ ;;
++ esac
++ fi
++ ;;
+
-l*)
- if test "$arg" = "-lc"; then
- case "$host" in
-- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
-+ *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos* | i[3456]86-*-dgux*)
- # These systems don't actually have c library (as such)
-+ # It is wrong in DG/UX to add -lc when creating shared/dynamic objs/libs
- continue
- ;;
- esac
+ if test "$arg" = "-lc"; then
+ case "$host" in
+- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
++ *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos* | i[3456]86-*-dgux*)
+ # These systems don't actually have c library (as such)
++ # It is wrong in DG/UX to add -lc when creating shared/dynamic objs/libs
+ continue
+ ;;
+ esac
@@ -1248,6 +1275,12 @@
- temp_deplibs=
- for deplib in $dependency_libs; do
- case "$deplib" in
-+ -thread*)
-+ temp_deplibs="$temp_deplibs $deplib"
-+ ;;
-+ -pthread)
-+ temp_deplibs="$temp_deplibs $deplib"
-+ ;;
- -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
- case " $rpath $xrpath " in
- *" $temp_xrpath "*) ;;
+ temp_deplibs=
+ for deplib in $dependency_libs; do
+ case "$deplib" in
++ -thread*)
++ temp_deplibs="$temp_deplibs $deplib"
++ ;;
++ -pthread)
++ temp_deplibs="$temp_deplibs $deplib"
++ ;;
+ -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+ case " $rpath $xrpath " in
+ *" $temp_xrpath "*) ;;
@@ -1709,6 +1742,13 @@
- done
- ;;
-
-+ dgux)
-+ # Leave mostly blank for DG/UX
-+ major=
-+ versuffix=".$current.$revision";
-+ verstring=
-+ ;;
+ done
+ ;;
+
++ dgux)
++ # Leave mostly blank for DG/UX
++ major=
++ versuffix=".$current.$revision";
++ verstring=
++ ;;
+
- linux)
- major=.`expr $current - $age`
- versuffix="$major.$age.$revision"
+ linux)
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
@@ -1792,8 +1832,9 @@
-
- dependency_libs="$deplibs"
- case "$host" in
-- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
-+ *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos* | i[3456]86-*-dgux*)
- # these systems don't actually have a c library (as such)!
-+ # It is wrong in DG/UX to add -lc when creating shared/dynamic objs/libs
- ;;
- *)
- # Add libc to deplibs on all other systems.
+
+ dependency_libs="$deplibs"
+ case "$host" in
+- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
++ *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos* | i[3456]86-*-dgux*)
+ # these systems don't actually have a c library (as such)!
++ # It is wrong in DG/UX to add -lc when creating shared/dynamic objs/libs
+ ;;
+ *)
+ # Add libc to deplibs on all other systems.