]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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. |