implemented Setup.hs to build boehm cpp libs and install them;
[hs-boehmgc.git] / gc-7.2 / doc / README.DGUX386
diff --git a/gc-7.2/doc/README.DGUX386 b/gc-7.2/doc/README.DGUX386
new file mode 100644 (file)
index 0000000..8960b94
--- /dev/null
@@ -0,0 +1,215 @@
+    Garbage Collector (parallel iversion) for ix86 DG/UX Release R4.20MU07
+
+
+     *READ* the file README.QUICK.
+
+     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.
+     Finally we support parralleli-mark for the SMP DG/UX machines.
+     To build the garbage collector do:
+
+      ./configure --enable-parallel-mark
+      make
+      make gctest
+
+     Before you run "gctest" you need to set your LD_LIBRARY_PATH
+     correctly so that "gctest" can find the shared library libgc.
+     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.
+     2) Edit the file linux-threads.c and uncommnect the line:
+
+     /* #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.
+
+     Takis Psarogiannakopoulos
+     University of Cambridge
+     Centre for Mathematical Sciences
+     Department of Pure Mathematics
+     Wilberforce Road
+     Cambridge CB3 0WB ,UK , <takis@XFree86.Org>
+     January 2002
+
+
+Note (HB):
+     The integration of this patch is currently not complete.
+     The following patches against 6.1alpha3 where hard to move
+     to alpha4, and are not integrated.  There may also be minor
+     problems with stylistic corrections made by me.
+
+
+--- 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
+     ;;
++  dgux*)
++    pic_flag='-fPIC'
++    link_static='-Bstatic'
++    wl='-Wl,'
++    ;;
+   *)
+     pic_flag='-fPIC'
+     ;;
+@@ -718,6 +723,12 @@
+     # We can build DLLs from non-PIC.
+     ;;
+
++  dgux*)
++    pic_flag='-KPIC'
++    link_static='-Bstatic'
++    wl='-Wl,'
++    ;;
++
+   osf3* | osf4* | osf5*)
+     # All OSF/1 code is PIC.
+     wl='-Wl,'
+@@ -1154,6 +1165,22 @@
+     fi
+     ;;
+
++  dgux*)
++    ld_shlibs=yes
++    # For both C/C++ ommit the deplibs. This is because we relying on the fact
++    # that compilation of execitables will put them in correct order
++    # in any case and sometimes are wrong when listed as deplibs (or missing some deplibs)
++    # However when GNU ld and --whole-archive needs to be used we have the problem
++    # that if the -fPIC *_s.a archive is linked through deplibs list we ommiting crucial
++    # .lo/.o files from the created shared lib. This I think is not the case here.
++    archive_cmds='$CC -shared -h $soname -o $lib $libobjs $linkopts'
++    thread_safe_flag_spec='-pthread'
++    wlarc=
++    hardcode_libdir_flag_spec='-L$libdir'
++    hardcode_shlibpath_var=no
++    ac_cv_archive_cmds_needs_lc=no
++    ;;
++
+   cygwin* | mingw*)
+     # hardcode_libdir_flag_spec is actually meaningless, as there is
+     # 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'
+     hardcode_libdir_flag_spec='-L$libdir'
+     hardcode_shlibpath_var=no
+     ;;
+@@ -2092,12 +2119,17 @@
+   ;;
+
+ dgux*)
+-  version_type=linux
++  version_type=dgux
+   need_lib_prefix=no
+   need_version=no
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+-  soname_spec='${libname}${release}.so$major'
++  library_names_spec='$libname.so$versuffix'
++  soname_spec='$libname.so$versuffix'
+   shlibpath_var=LD_LIBRARY_PATH
++  thread_safe_flag_spec='-pthread'
++  wlarc=
++  hardcode_libdir_flag_spec='-L$libdir'
++  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
+@@ -1072,11 +1072,38 @@
+        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
++       ;;
++
++      -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
++       ;;
++
+       -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
+@@ -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 "*) ;;
+@@ -1709,6 +1742,13 @@
+          done
+          ;;
+
++       dgux)
++         # Leave mostly blank for DG/UX
++         major=
++         versuffix=".$current.$revision";
++         verstring=
++         ;;
++
+        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.