README.DGUX386 5.9 KB

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