216 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			216 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
    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-full-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.
 |