| 1 | Garbage Collector (parallel iversion) for ix86 DG/UX Release R4.20MU07
|
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 | *READ* the file README.QUICK.
|
|---|
| 5 |
|
|---|
| 6 | You need the GCC-3.0.3 rev (DG/UX) compiler to build this tree.
|
|---|
| 7 | This compiler has the new "dgux386" threads package implemented.
|
|---|
| 8 | It also supports the switch "-pthread" needed to link correctly
|
|---|
| 9 | the DG/UX's -lrte -lthread with -lgcc and the system's -lc.
|
|---|
| 10 | Finally we support parralleli-mark for the SMP DG/UX machines.
|
|---|
| 11 | To build the garbage collector do:
|
|---|
| 12 |
|
|---|
| 13 | ./configure --enable-parallel-mark
|
|---|
| 14 | make
|
|---|
| 15 | make gctest
|
|---|
| 16 |
|
|---|
| 17 | Before you run "gctest" you need to set your LD_LIBRARY_PATH
|
|---|
| 18 | correctly so that "gctest" can find the shared library libgc.
|
|---|
| 19 | Alternatively you can do a configuration
|
|---|
| 20 |
|
|---|
| 21 | ./configure --enable-parallel-mark --disable-shared
|
|---|
| 22 |
|
|---|
| 23 | to build only the static version of libgc.
|
|---|
| 24 |
|
|---|
| 25 | To enable debugging messages please do:
|
|---|
| 26 | 1) Add the "--enable-full-debug" flag during configuration.
|
|---|
| 27 | 2) Edit the file linux-threads.c and uncommnect the line:
|
|---|
| 28 |
|
|---|
| 29 | /* #define DEBUG_THREADS 1 */ to --->
|
|---|
| 30 |
|
|---|
| 31 | #define DEBUG_THREADS 1
|
|---|
| 32 |
|
|---|
| 33 | Then give "make" as usual.
|
|---|
| 34 |
|
|---|
| 35 | In a machine with 4 CPUs (my own machine) the option parallel
|
|---|
| 36 | mark (aka --enable-parallel-mark) makes a BIG difference.
|
|---|
| 37 |
|
|---|
| 38 | Takis Psarogiannakopoulos
|
|---|
| 39 | University of Cambridge
|
|---|
| 40 | Centre for Mathematical Sciences
|
|---|
| 41 | Department of Pure Mathematics
|
|---|
| 42 | Wilberforce Road
|
|---|
| 43 | Cambridge CB3 0WB ,UK , <takis@XFree86.Org>
|
|---|
| 44 | January 2002
|
|---|
| 45 |
|
|---|
| 46 |
|
|---|
| 47 | Note (HB):
|
|---|
| 48 | The integration of this patch is currently not complete.
|
|---|
| 49 | The following patches against 6.1alpha3 where hard to move
|
|---|
| 50 | to alpha4, and are not integrated. There may also be minor
|
|---|
| 51 | problems with stylistic corrections made by me.
|
|---|
| 52 |
|
|---|
| 53 |
|
|---|
| 54 | --- ltconfig.ORIG Mon Jan 28 20:22:18 2002
|
|---|
| 55 | +++ ltconfig Mon Jan 28 20:44:00 2002
|
|---|
| 56 | @@ -689,6 +689,11 @@
|
|---|
| 57 | pic_flag=-Kconform_pic
|
|---|
| 58 | fi
|
|---|
| 59 | ;;
|
|---|
| 60 | + dgux*)
|
|---|
| 61 | + pic_flag='-fPIC'
|
|---|
| 62 | + link_static='-Bstatic'
|
|---|
| 63 | + wl='-Wl,'
|
|---|
| 64 | + ;;
|
|---|
| 65 | *)
|
|---|
| 66 | pic_flag='-fPIC'
|
|---|
| 67 | ;;
|
|---|
| 68 | @@ -718,6 +723,12 @@
|
|---|
| 69 | # We can build DLLs from non-PIC.
|
|---|
| 70 | ;;
|
|---|
| 71 |
|
|---|
| 72 | + dgux*)
|
|---|
| 73 | + pic_flag='-KPIC'
|
|---|
| 74 | + link_static='-Bstatic'
|
|---|
| 75 | + wl='-Wl,'
|
|---|
| 76 | + ;;
|
|---|
| 77 | +
|
|---|
| 78 | osf3* | osf4* | osf5*)
|
|---|
| 79 | # All OSF/1 code is PIC.
|
|---|
| 80 | wl='-Wl,'
|
|---|
| 81 | @@ -1154,6 +1165,22 @@
|
|---|
| 82 | fi
|
|---|
| 83 | ;;
|
|---|
| 84 |
|
|---|
| 85 | + dgux*)
|
|---|
| 86 | + ld_shlibs=yes
|
|---|
| 87 | + # For both C/C++ ommit the deplibs. This is because we relying on the fact
|
|---|
| 88 | + # that compilation of execitables will put them in correct order
|
|---|
| 89 | + # in any case and sometimes are wrong when listed as deplibs (or missing some deplibs)
|
|---|
| 90 | + # However when GNU ld and --whole-archive needs to be used we have the problem
|
|---|
| 91 | + # that if the -fPIC *_s.a archive is linked through deplibs list we ommiting crucial
|
|---|
| 92 | + # .lo/.o files from the created shared lib. This I think is not the case here.
|
|---|
| 93 | + archive_cmds='$CC -shared -h $soname -o $lib $libobjs $linkopts'
|
|---|
| 94 | + thread_safe_flag_spec='-pthread'
|
|---|
| 95 | + wlarc=
|
|---|
| 96 | + hardcode_libdir_flag_spec='-L$libdir'
|
|---|
| 97 | + hardcode_shlibpath_var=no
|
|---|
| 98 | + ac_cv_archive_cmds_needs_lc=no
|
|---|
| 99 | + ;;
|
|---|
| 100 | +
|
|---|
| 101 | cygwin* | mingw*)
|
|---|
| 102 | # hardcode_libdir_flag_spec is actually meaningless, as there is
|
|---|
| 103 | # no search path for DLLs.
|
|---|
| 104 | @@ -1497,7 +1524,7 @@
|
|---|
| 105 | ;;
|
|---|
| 106 |
|
|---|
| 107 | dgux*)
|
|---|
| 108 | - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
|
|---|
| 109 | + archive_cmds='$CC -shared -h $soname -o $lib $libobjs $linkopts'
|
|---|
| 110 | hardcode_libdir_flag_spec='-L$libdir'
|
|---|
| 111 | hardcode_shlibpath_var=no
|
|---|
| 112 | ;;
|
|---|
| 113 | @@ -2092,12 +2119,17 @@
|
|---|
| 114 | ;;
|
|---|
| 115 |
|
|---|
| 116 | dgux*)
|
|---|
| 117 | - version_type=linux
|
|---|
| 118 | + version_type=dgux
|
|---|
| 119 | need_lib_prefix=no
|
|---|
| 120 | need_version=no
|
|---|
| 121 | - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
|
|---|
| 122 | - soname_spec='${libname}${release}.so$major'
|
|---|
| 123 | + library_names_spec='$libname.so$versuffix'
|
|---|
| 124 | + soname_spec='$libname.so$versuffix'
|
|---|
| 125 | shlibpath_var=LD_LIBRARY_PATH
|
|---|
| 126 | + thread_safe_flag_spec='-pthread'
|
|---|
| 127 | + wlarc=
|
|---|
| 128 | + hardcode_libdir_flag_spec='-L$libdir'
|
|---|
| 129 | + hardcode_shlibpath_var=no
|
|---|
| 130 | + ac_cv_archive_cmds_needs_lc=no
|
|---|
| 131 | ;;
|
|---|
| 132 |
|
|---|
| 133 | sysv4*MP*)
|
|---|
| 134 |
|
|---|
| 135 |
|
|---|
| 136 | --- ltmain.sh.ORIG Mon Jan 28 20:31:18 2002
|
|---|
| 137 | +++ ltmain.sh Tue Jan 29 00:11:29 2002
|
|---|
| 138 | @@ -1072,11 +1072,38 @@
|
|---|
| 139 | esac
|
|---|
| 140 | ;;
|
|---|
| 141 |
|
|---|
| 142 | + -thread*)
|
|---|
| 143 | + # DG/UX GCC 2.95.x, 3.x.x rev (DG/UX) links -lthread
|
|---|
| 144 | + # with the switch -threads
|
|---|
| 145 | + if test "$arg" = "-threads"; then
|
|---|
| 146 | + case "$host" in
|
|---|
| 147 | + i[3456]86-*-dgux*)
|
|---|
| 148 | + deplibs="$deplibs $arg"
|
|---|
| 149 | + continue
|
|---|
| 150 | + ;;
|
|---|
| 151 | + esac
|
|---|
| 152 | + fi
|
|---|
| 153 | + ;;
|
|---|
| 154 | +
|
|---|
| 155 | + -pthread*)
|
|---|
| 156 | + # DG/UX GCC 2.95.x, 3.x.x rev (DG/UX) links -lthread
|
|---|
| 157 | + # with the switch -pthread
|
|---|
| 158 | + if test "$arg" = "-pthread"; then
|
|---|
| 159 | + case "$host" in
|
|---|
| 160 | + i[3456]86-*-dgux*)
|
|---|
| 161 | + deplibs="$deplibs $arg"
|
|---|
| 162 | + continue
|
|---|
| 163 | + ;;
|
|---|
| 164 | + esac
|
|---|
| 165 | + fi
|
|---|
| 166 | + ;;
|
|---|
| 167 | +
|
|---|
| 168 | -l*)
|
|---|
| 169 | if test "$arg" = "-lc"; then
|
|---|
| 170 | case "$host" in
|
|---|
| 171 | - *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
|
|---|
| 172 | + *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos* | i[3456]86-*-dgux*)
|
|---|
| 173 | # These systems don't actually have c library (as such)
|
|---|
| 174 | + # It is wrong in DG/UX to add -lc when creating shared/dynamic objs/libs
|
|---|
| 175 | continue
|
|---|
| 176 | ;;
|
|---|
| 177 | esac
|
|---|
| 178 | @@ -1248,6 +1275,12 @@
|
|---|
| 179 | temp_deplibs=
|
|---|
| 180 | for deplib in $dependency_libs; do
|
|---|
| 181 | case "$deplib" in
|
|---|
| 182 | + -thread*)
|
|---|
| 183 | + temp_deplibs="$temp_deplibs $deplib"
|
|---|
| 184 | + ;;
|
|---|
| 185 | + -pthread)
|
|---|
| 186 | + temp_deplibs="$temp_deplibs $deplib"
|
|---|
| 187 | + ;;
|
|---|
| 188 | -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
|
|---|
| 189 | case " $rpath $xrpath " in
|
|---|
| 190 | *" $temp_xrpath "*) ;;
|
|---|
| 191 | @@ -1709,6 +1742,13 @@
|
|---|
| 192 | done
|
|---|
| 193 | ;;
|
|---|
| 194 |
|
|---|
| 195 | + dgux)
|
|---|
| 196 | + # Leave mostly blank for DG/UX
|
|---|
| 197 | + major=
|
|---|
| 198 | + versuffix=".$current.$revision";
|
|---|
| 199 | + verstring=
|
|---|
| 200 | + ;;
|
|---|
| 201 | +
|
|---|
| 202 | linux)
|
|---|
| 203 | major=.`expr $current - $age`
|
|---|
| 204 | versuffix="$major.$age.$revision"
|
|---|
| 205 | @@ -1792,8 +1832,9 @@
|
|---|
| 206 |
|
|---|
| 207 | dependency_libs="$deplibs"
|
|---|
| 208 | case "$host" in
|
|---|
| 209 | - *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
|
|---|
| 210 | + *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos* | i[3456]86-*-dgux*)
|
|---|
| 211 | # these systems don't actually have a c library (as such)!
|
|---|
| 212 | + # It is wrong in DG/UX to add -lc when creating shared/dynamic objs/libs
|
|---|
| 213 | ;;
|
|---|
| 214 | *)
|
|---|
| 215 | # Add libc to deplibs on all other systems.
|
|---|