Mercurial > emacs
comparison gc/doc/README.DGUX386 @ 51488:5de98dce4bd1
*** empty log message ***
author | Dave Love <fx@gnu.org> |
---|---|
date | Thu, 05 Jun 2003 17:49:22 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
51487:01d68b199093 | 51488:5de98dce4bd1 |
---|---|
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. |