]>
Commit | Line | Data |
---|---|---|
9ef3e4ba PS |
1 | 2006-02-10 Jakub Jelinek <jakub@redhat.com> |
2 | ||
3 | * doc/install.texi (Options specification): Document | |
4 | --with-long-double-128. | |
5 | ||
6 | 2006-02-05 Jakub Jelinek <jakub@redhat.com> | |
7 | ||
8 | * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file. | |
9 | (sparc64-*-linux*): Likewise. | |
10 | * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed. | |
11 | * config/sparc/t-linux: New file. | |
12 | * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi, | |
13 | __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128. | |
14 | (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if | |
15 | -m32 -mlong-double-128. | |
16 | ||
17 | * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file. | |
18 | * config/alpha/t-linux: New file. | |
19 | * config/alpha/libgcc-alpha-ldbl.ver: New file. | |
20 | ||
21 | 2006-02-04 Jakub Jelinek <jakub@redhat.com> | |
22 | ||
23 | * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define | |
24 | __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128. | |
25 | (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here. | |
26 | * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define | |
27 | __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32. | |
28 | (CPP_ARCH32_SPEC): Remove. | |
29 | ||
30 | 2006-02-03 Aldy Hernandez <aldyh@redhat.com> | |
31 | ||
32 | * config/s390/s390.c (override_options): Handle | |
33 | TARGET_DEFAULT_LONG_DOUBLE_128. | |
34 | ||
35 | * config/alpha/alpha.c (override_options): Handle | |
36 | TARGET_DEFAULT_LONG_DOUBLE_128. | |
37 | ||
38 | * config/sparc/sparc.c (sparc_override_options): Handle | |
39 | TARGET_DEFAULT_LONG_DOUBLE_128. | |
40 | ||
41 | 2006-02-04 Jakub Jelinek <jakub@redhat.com> | |
42 | ||
43 | * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128] | |
44 | (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128. | |
45 | * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128] | |
46 | (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128. | |
47 | ||
48 | * configure.ac: Add --with{out}-long-double-128 configure option. | |
49 | (TARGET_DEFAULT_LONG_DOUBLE_128): New test. | |
50 | * configure: Rebuilt. | |
51 | * config.in: Rebuilt. | |
52 | ||
53 | --- gcc/config/rs6000/linux.h.jj 2006-02-04 11:46:38.000000000 +0100 | |
54 | +++ gcc/config/rs6000/linux.h 2006-02-04 11:47:18.000000000 +0100 | |
55 | @@ -120,3 +120,8 @@ | |
56 | #endif | |
57 | ||
58 | #define POWERPC_LINUX | |
59 | + | |
60 | +/* ppc linux has 128-bit long double support in glibc 2.4 and later. */ | |
61 | +#ifdef TARGET_DEFAULT_LONG_DOUBLE_128 | |
62 | +#define RS6000_DEFAULT_LONG_DOUBLE_SIZE 128 | |
63 | +#endif | |
64 | --- gcc/config/rs6000/linux64.h.jj 2006-02-04 11:46:38.000000000 +0100 | |
65 | +++ gcc/config/rs6000/linux64.h 2006-02-04 11:47:37.000000000 +0100 | |
66 | @@ -570,3 +570,8 @@ while (0) | |
67 | #endif | |
68 | ||
69 | #define POWERPC_LINUX | |
70 | + | |
71 | +/* ppc{32,64} linux has 128-bit long double support in glibc 2.4 and later. */ | |
72 | +#ifdef TARGET_DEFAULT_LONG_DOUBLE_128 | |
73 | +#define RS6000_DEFAULT_LONG_DOUBLE_SIZE 128 | |
74 | +#endif | |
75 | --- gcc/configure.ac.jj 2006-02-04 10:42:42.000000000 +0100 | |
76 | +++ gcc/configure.ac 2006-02-04 10:44:51.000000000 +0100 | |
77 | @@ -3135,6 +3135,39 @@ if test x$gcc_cv_libc_provides_ssp = xye | |
78 | [Define if your target C library provides stack protector support]) | |
79 | fi | |
80 | ||
81 | +# Check if TFmode long double should be used by default or not. | |
82 | +# Some glibc targets used DFmode long double, but with glibc 2.4 | |
83 | +# and later they can use TFmode. | |
84 | +case "$target" in | |
85 | + powerpc*-*-*gnu* | \ | |
86 | + sparc*-*-linux* | \ | |
87 | + s390*-*-linux* | \ | |
88 | + alpha*-*-linux*) | |
89 | + AC_ARG_WITH(long-double-128, | |
90 | +[ --with-long-double-128 Use 128-bit long double by default.], | |
91 | + gcc_cv_target_ldbl128="$with_long_double_128", | |
92 | + [gcc_cv_target_ldbl128=no | |
93 | + if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then | |
94 | + if test "x$with_sysroot" = x; then | |
95 | + glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include" | |
96 | + elif test "x$with_sysroot" = xyes; then | |
97 | + glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include" | |
98 | + else | |
99 | + glibc_header_dir="${with_sysroot}/usr/include" | |
100 | + fi | |
101 | + else | |
102 | + glibc_header_dir=/usr/include | |
103 | + fi | |
104 | + grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \ | |
105 | + $glibc_header_dir/bits/wordsize.h > /dev/null 2>&1 \ | |
106 | + && gcc_cv_target_ldbl128=yes]) | |
107 | + ;; | |
108 | +esac | |
109 | +if test x$gcc_cv_target_ldbl128 = xyes; then | |
110 | + AC_DEFINE(TARGET_DEFAULT_LONG_DOUBLE_128, 1, | |
111 | + [Define if TFmode long double should be the default]) | |
112 | +fi | |
113 | + | |
114 | # Find out what GC implementation we want, or may, use. | |
115 | AC_ARG_WITH(gc, | |
116 | [ --with-gc={page,zone} choose the garbage collection mechanism to use | |
117 | --- gcc/configure.jj 2006-02-04 10:42:41.000000000 +0100 | |
118 | +++ gcc/configure 2006-02-04 10:46:54.000000000 +0100 | |
119 | @@ -931,6 +931,7 @@ Optional Packages: | |
120 | --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib | |
121 | --without-libiconv-prefix don't search for libiconv in includedir and libdir | |
122 | --with-system-libunwind use installed libunwind | |
123 | + --with-long-double-128 Use 128-bit long double by default. | |
124 | --with-gc={page,zone} choose the garbage collection mechanism to use | |
125 | with the compiler | |
126 | --with-system-zlib use installed libz | |
127 | @@ -7492,7 +7493,7 @@ if test "${gcc_cv_prog_makeinfo_modern+s | |
128 | else | |
129 | ac_prog_version=`$MAKEINFO --version 2>&1 | | |
130 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'` | |
131 | - echo "configure:7495: version of makeinfo is $ac_prog_version" >&5 | |
132 | + echo "configure:7496: version of makeinfo is $ac_prog_version" >&5 | |
133 | case $ac_prog_version in | |
134 | '') gcc_cv_prog_makeinfo_modern=no;; | |
135 | 4.[2-9]*) | |
136 | @@ -16227,6 +16228,46 @@ _ACEOF | |
137 | ||
138 | fi | |
139 | ||
140 | +# Check if TFmode long double should be used by default or not. | |
141 | +# Some glibc targets used DFmode long double, but with glibc 2.4 | |
142 | +# and later they can use TFmode. | |
143 | +case "$target" in | |
144 | + powerpc*-*-*gnu* | \ | |
145 | + sparc*-*-linux* | \ | |
146 | + s390*-*-linux* | \ | |
147 | + alpha*-*-linux*) | |
148 | + | |
149 | +# Check whether --with-long-double-128 or --without-long-double-128 was given. | |
150 | +if test "${with_long_double_128+set}" = set; then | |
151 | + withval="$with_long_double_128" | |
152 | + gcc_cv_target_ldbl128="$with_long_double_128" | |
153 | +else | |
154 | + gcc_cv_target_ldbl128=no | |
155 | + if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then | |
156 | + if test "x$with_sysroot" = x; then | |
157 | + glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include" | |
158 | + elif test "x$with_sysroot" = xyes; then | |
159 | + glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include" | |
160 | + else | |
161 | + glibc_header_dir="${with_sysroot}/usr/include" | |
162 | + fi | |
163 | + else | |
164 | + glibc_header_dir=/usr/include | |
165 | + fi | |
166 | + grep '^ *#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \ | |
167 | + $glibc_header_dir/bits/wordsize.h > /dev/null 2>&1 \ | |
168 | + && gcc_cv_target_ldbl128=yes | |
169 | +fi; | |
170 | + ;; | |
171 | +esac | |
172 | +if test x$gcc_cv_target_ldbl128 = xyes; then | |
173 | + | |
174 | +cat >>confdefs.h <<\_ACEOF | |
175 | +#define TARGET_DEFAULT_LONG_DOUBLE_128 1 | |
176 | +_ACEOF | |
177 | + | |
178 | +fi | |
179 | + | |
180 | # Find out what GC implementation we want, or may, use. | |
181 | ||
182 | # Check whether --with-gc or --without-gc was given. | |
183 | --- gcc/config.in.jj 2006-02-04 10:42:42.000000000 +0100 | |
184 | +++ gcc/config.in 2006-02-04 10:44:51.000000000 +0100 | |
185 | @@ -1283,6 +1283,12 @@ | |
186 | #endif | |
187 | ||
188 | ||
189 | +/* Define if TFmode long double should be the default */ | |
190 | +#ifndef USED_FOR_TARGET | |
191 | +#undef TARGET_DEFAULT_LONG_DOUBLE_128 | |
192 | +#endif | |
193 | + | |
194 | + | |
195 | /* Define if your target C library provides stack protector support */ | |
196 | #ifndef USED_FOR_TARGET | |
197 | #undef TARGET_LIBC_PROVIDES_SSP | |
198 | --- gcc/config/alpha/alpha.c.jj 2006-02-04 10:42:41.000000000 +0100 | |
199 | +++ gcc/config/alpha/alpha.c 2006-02-04 12:36:09.000000000 +0100 | |
200 | @@ -501,6 +516,11 @@ override_options (void) | |
201 | REAL_MODE_FORMAT (DFmode) = &vax_g_format; | |
202 | REAL_MODE_FORMAT (TFmode) = NULL; | |
203 | } | |
204 | + | |
205 | +#ifdef TARGET_DEFAULT_LONG_DOUBLE_128 | |
206 | + if (!(target_flags_explicit & MASK_LONG_DOUBLE_128)) | |
207 | + target_flags |= MASK_LONG_DOUBLE_128; | |
208 | +#endif | |
209 | } | |
210 | \f | |
211 | /* Returns 1 if VALUE is a mask that contains full bytes of zero or ones. */ | |
212 | --- gcc/config/s390/s390.c.jj 2006-02-04 10:42:41.000000000 +0100 | |
213 | +++ gcc/config/s390/s390.c 2006-02-04 12:36:09.000000000 +0100 | |
214 | @@ -1415,6 +1415,11 @@ override_options (void) | |
215 | } | |
216 | else if (s390_stack_guard) | |
217 | error ("-mstack-guard implies use of -mstack-size"); | |
218 | + | |
219 | +#ifdef TARGET_DEFAULT_LONG_DOUBLE_128 | |
220 | + if (!(target_flags_explicit & MASK_LONG_DOUBLE_128)) | |
221 | + target_flags |= MASK_LONG_DOUBLE_128; | |
222 | +#endif | |
223 | } | |
224 | ||
225 | /* Map for smallest class containing reg regno. */ | |
226 | --- gcc/config/sparc/linux.h.jj 2006-02-04 10:42:41.000000000 +0100 | |
227 | +++ gcc/config/sparc/linux.h 2006-02-04 12:39:31.000000000 +0100 | |
228 | @@ -23,17 +23,19 @@ Boston, MA 02110-1301, USA. */ | |
229 | #define TARGET_OS_CPP_BUILTINS() \ | |
230 | do \ | |
231 | { \ | |
232 | - builtin_define_std ("unix"); \ | |
233 | - builtin_define_std ("linux"); \ | |
234 | - builtin_define ("__gnu_linux__"); \ | |
235 | - builtin_assert ("system=linux"); \ | |
236 | - builtin_assert ("system=unix"); \ | |
237 | - builtin_assert ("system=posix"); \ | |
238 | - if (flag_pic) \ | |
239 | - { \ | |
240 | - builtin_define ("__PIC__"); \ | |
241 | - builtin_define ("__pic__"); \ | |
242 | - } \ | |
243 | + builtin_define_std ("unix"); \ | |
244 | + builtin_define_std ("linux"); \ | |
245 | + builtin_define ("__gnu_linux__"); \ | |
246 | + builtin_assert ("system=linux"); \ | |
247 | + builtin_assert ("system=unix"); \ | |
248 | + builtin_assert ("system=posix"); \ | |
249 | + if (flag_pic) \ | |
250 | + { \ | |
251 | + builtin_define ("__PIC__"); \ | |
252 | + builtin_define ("__pic__"); \ | |
253 | + } \ | |
254 | + if (TARGET_LONG_DOUBLE_128) \ | |
255 | + builtin_define ("__LONG_DOUBLE_128__"); \ | |
256 | } \ | |
257 | while (0) | |
258 | ||
259 | @@ -100,8 +102,7 @@ Boston, MA 02110-1301, USA. */ | |
260 | ||
261 | #undef CPP_SUBTARGET_SPEC | |
262 | #define CPP_SUBTARGET_SPEC \ | |
263 | -"%{posix:-D_POSIX_SOURCE} \ | |
264 | -%{pthread:-D_REENTRANT} %{mlong-double-128:-D__LONG_DOUBLE_128__}" | |
265 | +"%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" | |
266 | ||
267 | #undef LIB_SPEC | |
268 | #define LIB_SPEC \ | |
269 | --- gcc/config/sparc/sparc.c.jj 2006-02-04 10:42:41.000000000 +0100 | |
270 | +++ gcc/config/sparc/sparc.c 2006-02-04 12:36:09.000000000 +0100 | |
271 | @@ -782,6 +790,11 @@ sparc_override_options (void) | |
272 | sparc_costs = &ultrasparc3_costs; | |
273 | break; | |
274 | }; | |
275 | + | |
276 | +#ifdef TARGET_DEFAULT_LONG_DOUBLE_128 | |
277 | + if (!(target_flags_explicit & MASK_LONG_DOUBLE_128)) | |
278 | + target_flags |= MASK_LONG_DOUBLE_128; | |
279 | +#endif | |
280 | } | |
281 | \f | |
282 | #ifdef SUBTARGET_ATTRIBUTE_TABLE | |
283 | --- gcc/config/sparc/linux64.h.jj 2006-02-04 10:42:41.000000000 +0100 | |
284 | +++ gcc/config/sparc/linux64.h 2006-02-04 12:39:31.000000000 +0100 | |
285 | @@ -20,22 +20,24 @@ along with GCC; see the file COPYING. I | |
286 | the Free Software Foundation, 51 Franklin Street, Fifth Floor, | |
287 | Boston, MA 02110-1301, USA. */ | |
288 | ||
289 | -#define TARGET_OS_CPP_BUILTINS() \ | |
290 | - do \ | |
291 | - { \ | |
292 | - builtin_define_std ("unix"); \ | |
293 | - builtin_define_std ("linux"); \ | |
294 | - builtin_define ("_LONGLONG"); \ | |
295 | - builtin_define ("__gnu_linux__"); \ | |
296 | - builtin_assert ("system=linux"); \ | |
297 | - builtin_assert ("system=unix"); \ | |
298 | - builtin_assert ("system=posix"); \ | |
299 | - if (flag_pic) \ | |
300 | - { \ | |
301 | - builtin_define ("__PIC__"); \ | |
302 | - builtin_define ("__pic__"); \ | |
303 | - } \ | |
304 | - } \ | |
305 | +#define TARGET_OS_CPP_BUILTINS() \ | |
306 | + do \ | |
307 | + { \ | |
308 | + builtin_define_std ("unix"); \ | |
309 | + builtin_define_std ("linux"); \ | |
310 | + builtin_define ("_LONGLONG"); \ | |
311 | + builtin_define ("__gnu_linux__"); \ | |
312 | + builtin_assert ("system=linux"); \ | |
313 | + builtin_assert ("system=unix"); \ | |
314 | + builtin_assert ("system=posix"); \ | |
315 | + if (flag_pic) \ | |
316 | + { \ | |
317 | + builtin_define ("__PIC__"); \ | |
318 | + builtin_define ("__pic__"); \ | |
319 | + } \ | |
320 | + if (TARGET_ARCH32 && TARGET_LONG_DOUBLE_128) \ | |
321 | + builtin_define ("__LONG_DOUBLE_128__"); \ | |
322 | + } \ | |
323 | while (0) | |
324 | ||
325 | /* Don't assume anything about the header files. */ | |
326 | @@ -59,13 +61,6 @@ Boston, MA 02110-1301, USA. */ | |
327 | #undef ASM_CPU_DEFAULT_SPEC | |
328 | #define ASM_CPU_DEFAULT_SPEC "-Av9a" | |
329 | ||
330 | -#ifdef SPARC_BI_ARCH | |
331 | - | |
332 | -#undef CPP_ARCH32_SPEC | |
333 | -#define CPP_ARCH32_SPEC "%{mlong-double-128:-D__LONG_DOUBLE_128__}" | |
334 | - | |
335 | -#endif | |
336 | - | |
337 | /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add | |
338 | the GNU/Linux magical crtbegin.o file (see crtstuff.c) which | |
339 | provides part of the support for getting C++ file-scope static | |
340 | --- gcc/config.gcc.jj 2006-02-04 09:38:33.000000000 +0100 | |
341 | +++ gcc/config.gcc 2006-02-05 22:00:25.000000000 +0100 | |
342 | @@ -568,7 +568,7 @@ alpha*-*-unicosmk*) | |
343 | alpha*-*-linux*) | |
344 | tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h" | |
345 | target_cpu_default="MASK_GAS" | |
346 | - tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee" | |
347 | + tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee alpha/t-linux" | |
348 | ;; | |
349 | alpha*-*-gnu*) | |
350 | target_cpu_default="MASK_GAS" | |
351 | @@ -2059,7 +2059,7 @@ sparc-*-elf*) | |
352 | sparc-*-linux*) # SPARC's running GNU/Linux, libc6 | |
353 | tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h" | |
354 | extra_options="${extra_options} sparc/long-double-switch.opt" | |
355 | - tmake_file="${tmake_file} sparc/t-crtfm" | |
356 | + tmake_file="${tmake_file} sparc/t-linux sparc/t-crtfm" | |
357 | ;; | |
358 | sparc-*-rtems*) | |
359 | tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h" | |
360 | @@ -2178,7 +2178,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd* | |
361 | sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux | |
362 | tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h" | |
363 | extra_options="${extra_options} sparc/long-double-switch.opt" | |
364 | - tmake_file="${tmake_file} sparc/t-linux64 sparc/t-crtfm" | |
365 | + tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm" | |
366 | ;; | |
367 | sparc64-*-netbsd*) | |
368 | tm_file="sparc/biarch64.h ${tm_file}" | |
369 | --- gcc/config/alpha/libgcc-alpha-ldbl.ver.jj 2006-02-05 21:57:55.000000000 +0100 | |
370 | +++ gcc/config/alpha/libgcc-alpha-ldbl.ver 2006-02-05 21:58:59.000000000 +0100 | |
371 | @@ -0,0 +1,32 @@ | |
372 | +%ifdef __LONG_DOUBLE_128__ | |
373 | + | |
374 | +# long double 128 bit support in libgcc_s.so.1 is only available | |
375 | +# when configured with --with-long-double-128. Make sure all the | |
376 | +# symbols are available at @@GCC_LDBL_* versions to make it clear | |
377 | +# there is a configurable symbol set. | |
378 | + | |
379 | +%exclude { | |
380 | + __fixtfdi | |
381 | + __fixunstfdi | |
382 | + __floatditf | |
383 | + | |
384 | + __divtc3 | |
385 | + __multc3 | |
386 | + __powitf2 | |
387 | +} | |
388 | + | |
389 | +%inherit GCC_LDBL_3.0 GCC_3.0 | |
390 | +GCC_LDBL_3.0 { | |
391 | + __fixtfdi | |
392 | + __fixunstfdi | |
393 | + __floatditf | |
394 | +} | |
395 | + | |
396 | +%inherit GCC_LDBL_4.0.0 GCC_4.0.0 | |
397 | +GCC_LDBL_4.0.0 { | |
398 | + __divtc3 | |
399 | + __multc3 | |
400 | + __powitf2 | |
401 | +} | |
402 | + | |
403 | +%endif | |
404 | --- gcc/config/alpha/t-linux.jj 2006-02-05 21:57:01.000000000 +0100 | |
405 | +++ gcc/config/alpha/t-linux 2006-02-05 21:59:40.000000000 +0100 | |
406 | @@ -0,0 +1 @@ | |
407 | +SHLIB_MAPFILES += $(srcdir)/config/alpha/libgcc-alpha-ldbl.ver | |
408 | --- gcc/config/sparc/t-linux64.jj 2006-01-28 00:43:01.000000000 +0100 | |
409 | +++ gcc/config/sparc/t-linux64 2006-02-05 20:40:45.000000000 +0100 | |
410 | @@ -8,12 +8,6 @@ INSTALL_LIBGCC = install-multilib | |
411 | EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \ | |
412 | crtfastmath.o | |
413 | ||
414 | -# Override t-slibgcc-elf-ver to export some libgcc symbols with | |
415 | -# the symbol versions that glibc used. | |
416 | -# Avoid the t-linux version file. | |
417 | -SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \ | |
418 | - $(srcdir)/config/sparc/libgcc-sparc-glibc.ver | |
419 | - | |
420 | CRTSTUFF_T_CFLAGS = `if test x$$($(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) \ | |
421 | -print-multi-os-directory) \ | |
422 | = x../lib64; then echo -mcmodel=medany; fi` | |
423 | --- gcc/config/sparc/libgcc-sparc-glibc.ver.jj 2006-01-28 00:43:01.000000000 +0100 | |
424 | +++ gcc/config/sparc/libgcc-sparc-glibc.ver 2006-02-05 21:03:43.000000000 +0100 | |
425 | @@ -26,3 +26,36 @@ GLIBC_VER { | |
426 | __frame_state_for | |
427 | __register_frame_info_table | |
428 | } | |
429 | + | |
430 | +%if !defined (__arch64__) && defined (__LONG_DOUBLE_128__) | |
431 | + | |
432 | +# long double 128 bit support from 32-bit libgcc_s.so.1 is only available | |
433 | +# when configured with --with-long-double-128. Make sure all the | |
434 | +# symbols are available at @@GCC_LDBL_* versions to make it clear | |
435 | +# there is a configurable symbol set. | |
436 | + | |
437 | +%exclude { | |
438 | + __fixtfdi | |
439 | + __fixunstfdi | |
440 | + __floatditf | |
441 | + | |
442 | + __divtc3 | |
443 | + __multc3 | |
444 | + __powitf2 | |
445 | +} | |
446 | + | |
447 | +%inherit GCC_LDBL_3.0 GCC_3.0 | |
448 | +GCC_LDBL_3.0 { | |
449 | + __fixtfdi | |
450 | + __fixunstfdi | |
451 | + __floatditf | |
452 | +} | |
453 | + | |
454 | +%inherit GCC_LDBL_4.0.0 GCC_4.0.0 | |
455 | +GCC_LDBL_4.0.0 { | |
456 | + __divtc3 | |
457 | + __multc3 | |
458 | + __powitf2 | |
459 | +} | |
460 | + | |
461 | +%endif | |
462 | --- gcc/config/sparc/t-linux.jj 2006-02-05 20:40:20.000000000 +0100 | |
463 | +++ gcc/config/sparc/t-linux 2006-02-05 20:40:55.000000000 +0100 | |
464 | @@ -0,0 +1,5 @@ | |
465 | +# Override t-slibgcc-elf-ver to export some libgcc symbols with | |
466 | +# the symbol versions that glibc used. | |
467 | +# Avoid the t-linux version file. | |
468 | +SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \ | |
469 | + $(srcdir)/config/sparc/libgcc-sparc-glibc.ver | |
470 | --- gcc/doc/install.texi.jj 2006-02-02 16:39:46.000000000 +0100 | |
471 | +++ gcc/doc/install.texi 2006-02-10 15:33:53.000000000 +0100 | |
472 | @@ -1224,6 +1224,14 @@ error message. | |
473 | All support for systems which have been obsoleted in one release of GCC | |
474 | is removed entirely in the next major release, unless someone steps | |
475 | forward to maintain the port. | |
476 | + | |
477 | +@item --with-long-double-128 | |
478 | +Specify if @code{long double} type should be 128-bit by default on selected | |
479 | +GNU/Linux architectures. If using @code{--without-long-double-128}, | |
480 | +@code{long double} will be by default 64-bit, the same as @code{double} type. | |
481 | +When neither of these configure options are used, the default will be | |
482 | +128-bit @code{long double} when built against GNU C Library 2.4 and later, | |
483 | +64-bit @code{long double} otherwise. | |
484 | @end table | |
485 | ||
486 | @subheading Cross-Compiler-Specific Options |