1 |
vapier 10/08/24 02:25:19 |
2 |
|
3 |
Modified: README.history |
4 |
Added: 0070_all_glibc-2.12-asm-gnu-indirect.patch |
5 |
Log: |
6 |
fix gnu indirect assembler checks to work with older versions #333541 |
7 |
|
8 |
Revision Changes Path |
9 |
1.4 src/patchsets/glibc/2.12.1/README.history |
10 |
|
11 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.12.1/README.history?rev=1.4&view=markup |
12 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.12.1/README.history?rev=1.4&content-type=text/plain |
13 |
diff : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.12.1/README.history?r1=1.3&r2=1.4 |
14 |
|
15 |
Index: README.history |
16 |
=================================================================== |
17 |
RCS file: /var/cvsroot/gentoo/src/patchsets/glibc/2.12.1/README.history,v |
18 |
retrieving revision 1.3 |
19 |
retrieving revision 1.4 |
20 |
diff -u -r1.3 -r1.4 |
21 |
--- README.history 19 Aug 2010 23:42:37 -0000 1.3 |
22 |
+++ README.history 24 Aug 2010 02:25:19 -0000 1.4 |
23 |
@@ -1,3 +1,6 @@ |
24 |
+3 23.08.2010 |
25 |
+ + 0070_all_glibc-2.12-asm-gnu-indirect.patch |
26 |
+ |
27 |
2 19.08.2010 |
28 |
+ 0010_all_glibc-locale-output-quote.patch |
29 |
+ 0055_all_glibc-2.12-static-shared-getpagesize.patch |
30 |
|
31 |
|
32 |
|
33 |
1.1 src/patchsets/glibc/2.12.1/0070_all_glibc-2.12-asm-gnu-indirect.patch |
34 |
|
35 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.12.1/0070_all_glibc-2.12-asm-gnu-indirect.patch?rev=1.1&view=markup |
36 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.12.1/0070_all_glibc-2.12-asm-gnu-indirect.patch?rev=1.1&content-type=text/plain |
37 |
|
38 |
Index: 0070_all_glibc-2.12-asm-gnu-indirect.patch |
39 |
=================================================================== |
40 |
https://bugs.gentoo.org/333541 |
41 |
|
42 |
From 869b407a3f477133083211493d5695ad83b8d699 Mon Sep 17 00:00:00 2001 |
43 |
From: Mike Frysinger <vapier@g.o> |
44 |
Date: Fri, 20 Aug 2010 02:46:42 -0400 |
45 |
Subject: [PATCH] fix automatic multiarch detection (wrt gnu indirect) |
46 |
|
47 |
The multiarch code tries to detect gnu indirect support in the assembler |
48 |
and then disable multiarch support if it isn't found. The trouble is that |
49 |
the sysnames paths have already been expanded to include multiarch subdirs |
50 |
by the time the assembler check is executed. So even if multiarch is set |
51 |
to no, the sysnames paths are not changed. |
52 |
|
53 |
So to fix this, we move the required assembler checks to before the |
54 |
sysnames paths are expanded. In the process, we unify the duplicated |
55 |
gnu indirect assembler checks and the splitting of configure output. |
56 |
At the moment, the configure output looks something like: |
57 |
checking sysdep dirs... checking for assembler gnu_indirect_function symbol type support... yes |
58 |
sysdeps/x86_64/elf nptl/sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux/x86_64 ... |
59 |
|
60 |
Signed-off-by: Mike Frysinger <vapier@g.o> |
61 |
|
62 |
2010-08-21 Mike Frysinger <vapier@g.o> |
63 |
|
64 |
* configure.in: Move assembler checks to before sysdep dir checking. |
65 |
* configure: Regenerated. |
66 |
--- |
67 |
configure.in | 198 ++++++++++++++++++--------------------- |
68 |
configure | 296 +++++++++++++++++++++++++++------------------------------- |
69 |
2 files changed, 228 insertions(+), 266 deletions(-) |
70 |
|
71 |
diff --git a/configure.in b/configure.in |
72 |
index 036a950..098adf4 100644 |
73 |
--- a/configure.in |
74 |
+++ b/configure.in |
75 |
@@ -273,9 +273,6 @@ AC_ARG_ENABLE([multi-arch], |
76 |
[enable single DSO with optimizations for multiple architectures]), |
77 |
[multi_arch=$enableval], |
78 |
[multi_arch=default]) |
79 |
-if test x"$multi_arch" != xno; then |
80 |
- multi_arch_d=/multiarch |
81 |
-fi |
82 |
|
83 |
AC_ARG_ENABLE([experimental-malloc], |
84 |
AC_HELP_STRING([--enable-experimental-malloc], |
85 |
@@ -603,6 +600,90 @@ if test "$base_machine" = "i386"; then |
86 |
AC_DEFINE(USE_REGPARMS) |
87 |
fi |
88 |
|
89 |
+# For the multi-arch option we need support in the assembler. |
90 |
+AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support], |
91 |
+ libc_cv_asm_gnu_indirect_function, [dnl |
92 |
+cat > conftest.s <<EOF |
93 |
+.type foo,%gnu_indirect_function |
94 |
+EOF |
95 |
+if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; |
96 |
+then |
97 |
+ libc_cv_asm_gnu_indirect_function=yes |
98 |
+else |
99 |
+ libc_cv_asm_gnu_indirect_function=no |
100 |
+fi |
101 |
+rm -f conftest*]) |
102 |
+ |
103 |
+AC_MSG_CHECKING(whether .text pseudo-op must be used) |
104 |
+AC_CACHE_VAL(libc_cv_dot_text, [dnl |
105 |
+cat > conftest.s <<EOF |
106 |
+.text |
107 |
+EOF |
108 |
+libc_cv_dot_text= |
109 |
+if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then |
110 |
+ libc_cv_dot_text=.text |
111 |
+fi |
112 |
+rm -f conftest*]) |
113 |
+if test -z "$libc_cv_dot_text"; then |
114 |
+ AC_MSG_RESULT(no) |
115 |
+else |
116 |
+ AC_MSG_RESULT(yes) |
117 |
+fi |
118 |
+ |
119 |
+AC_CACHE_CHECK(for assembler global-symbol directive, |
120 |
+ libc_cv_asm_global_directive, [dnl |
121 |
+libc_cv_asm_global_directive=UNKNOWN |
122 |
+for ac_globl in .globl .global .EXPORT; do |
123 |
+ cat > conftest.s <<EOF |
124 |
+ ${libc_cv_dot_text} |
125 |
+ ${ac_globl} foo |
126 |
+foo: |
127 |
+EOF |
128 |
+ if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then |
129 |
+ libc_cv_asm_global_directive=${ac_globl} |
130 |
+ fi |
131 |
+ rm -f conftest* |
132 |
+ test $libc_cv_asm_global_directive != UNKNOWN && break |
133 |
+done]) |
134 |
+if test $libc_cv_asm_global_directive = UNKNOWN; then |
135 |
+ AC_MSG_ERROR(cannot determine asm global directive) |
136 |
+else |
137 |
+ AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive}) |
138 |
+fi |
139 |
+ |
140 |
+AC_CACHE_CHECK(for assembler .type directive prefix, |
141 |
+ libc_cv_asm_type_prefix, [dnl |
142 |
+libc_cv_asm_type_prefix=no |
143 |
+for ac_try_prefix in '@' '%' '#'; do |
144 |
+ cat > conftest.s <<EOF |
145 |
+ ${libc_cv_dot_text} |
146 |
+ ${libc_cv_asm_global_directive} foo |
147 |
+ .type foo, ${ac_try_prefix}object |
148 |
+ .size foo, 1 |
149 |
+foo: |
150 |
+ .byte 1 |
151 |
+EOF |
152 |
+ if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then |
153 |
+ libc_cv_asm_type_prefix=${ac_try_prefix} |
154 |
+ fi |
155 |
+ rm -f conftest* |
156 |
+ test "x$libc_cv_asm_type_prefix" != xno && break |
157 |
+done]) |
158 |
+if test "x$libc_cv_asm_type_prefix" != xno; then |
159 |
+ AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix}) |
160 |
+fi |
161 |
+ |
162 |
+if test x"$libc_cv_asm_gnu_indirect_function" != xyes -a x"$libc_cv_asm_type_prefix" = xno; then |
163 |
+ if test x"$multi_arch" = xyes; then |
164 |
+ AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support]) |
165 |
+ else |
166 |
+ multi_arch=no |
167 |
+ fi |
168 |
+fi |
169 |
+if test x"$multi_arch" != xno; then |
170 |
+ multi_arch_d=/multiarch |
171 |
+fi |
172 |
+ |
173 |
# Compute the list of sysdep directories for this configuration. |
174 |
# This can take a while to compute. |
175 |
sysdep_dir=$srcdir/sysdeps |
176 |
@@ -722,29 +803,14 @@ done |
177 |
|
178 |
# If the assembler supports gnu_indirect_function symbol type and the |
179 |
# architecture supports multi-arch, we enable multi-arch by default. |
180 |
-if test "$multi_arch" = default; then |
181 |
-AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support], |
182 |
- libc_cv_asm_gnu_indirect_function, [dnl |
183 |
-cat > conftest.s <<EOF |
184 |
-.type foo,%gnu_indirect_function |
185 |
-EOF |
186 |
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; |
187 |
-then |
188 |
- libc_cv_asm_gnu_indirect_function=yes |
189 |
-else |
190 |
- libc_cv_asm_gnu_indirect_function=no |
191 |
-fi |
192 |
-rm -f conftest*]) |
193 |
+case $sysnames_add_ons$sysnames in |
194 |
+*"$multi_arch_d"*) |
195 |
+ ;; |
196 |
+*) |
197 |
multi_arch=no |
198 |
- if test "$libc_cv_asm_gnu_indirect_function" = yes; then |
199 |
- case $sysnames_add_ons$sysnames in |
200 |
- *"$multi_arch_d"*) |
201 |
- multi_arch=yes |
202 |
- ;; |
203 |
- esac |
204 |
- fi |
205 |
-fi |
206 |
-if test x"$multi_arch" = xyes; then |
207 |
+ ;; |
208 |
+esac |
209 |
+if test x"$multi_arch" != xno; then |
210 |
AC_DEFINE(USE_MULTIARCH) |
211 |
fi |
212 |
AC_SUBST(multi_arch) |
213 |
@@ -1172,43 +1238,6 @@ if test $libc_cv_need_minus_P = yes; then |
214 |
asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives." |
215 |
fi |
216 |
|
217 |
-AC_MSG_CHECKING(whether .text pseudo-op must be used) |
218 |
-AC_CACHE_VAL(libc_cv_dot_text, [dnl |
219 |
-cat > conftest.s <<EOF |
220 |
-.text |
221 |
-EOF |
222 |
-libc_cv_dot_text= |
223 |
-if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then |
224 |
- libc_cv_dot_text=.text |
225 |
-fi |
226 |
-rm -f conftest*]) |
227 |
-if test -z "$libc_cv_dot_text"; then |
228 |
- AC_MSG_RESULT(no) |
229 |
-else |
230 |
- AC_MSG_RESULT(yes) |
231 |
-fi |
232 |
- |
233 |
-AC_CACHE_CHECK(for assembler global-symbol directive, |
234 |
- libc_cv_asm_global_directive, [dnl |
235 |
-libc_cv_asm_global_directive=UNKNOWN |
236 |
-for ac_globl in .globl .global .EXPORT; do |
237 |
- cat > conftest.s <<EOF |
238 |
- ${libc_cv_dot_text} |
239 |
- ${ac_globl} foo |
240 |
-foo: |
241 |
-EOF |
242 |
- if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then |
243 |
- libc_cv_asm_global_directive=${ac_globl} |
244 |
- fi |
245 |
- rm -f conftest* |
246 |
- test $libc_cv_asm_global_directive != UNKNOWN && break |
247 |
-done]) |
248 |
-if test $libc_cv_asm_global_directive = UNKNOWN; then |
249 |
- AC_MSG_ERROR(cannot determine asm global directive) |
250 |
-else |
251 |
- AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive}) |
252 |
-fi |
253 |
- |
254 |
AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl |
255 |
cat > conftest.s <<EOF |
256 |
${libc_cv_dot_text} |
257 |
@@ -1234,28 +1263,6 @@ if test $libc_cv_asm_set_directive = yes; then |
258 |
AC_DEFINE(HAVE_ASM_SET_DIRECTIVE) |
259 |
fi |
260 |
|
261 |
-AC_CACHE_CHECK(for assembler .type directive prefix, |
262 |
- libc_cv_asm_type_prefix, [dnl |
263 |
-libc_cv_asm_type_prefix=no |
264 |
-for ac_try_prefix in '@' '%' '#'; do |
265 |
- cat > conftest.s <<EOF |
266 |
- ${libc_cv_dot_text} |
267 |
- ${libc_cv_asm_global_directive} foo |
268 |
- .type foo, ${ac_try_prefix}object |
269 |
- .size foo, 1 |
270 |
-foo: |
271 |
- .byte 1 |
272 |
-EOF |
273 |
- if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then |
274 |
- libc_cv_asm_type_prefix=${ac_try_prefix} |
275 |
- fi |
276 |
- rm -f conftest* |
277 |
- test "x$libc_cv_asm_type_prefix" != xno && break |
278 |
-done]) |
279 |
-if test "x$libc_cv_asm_type_prefix" != xno; then |
280 |
- AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix}) |
281 |
-fi |
282 |
- |
283 |
AC_CACHE_CHECK(for assembler gnu_unique_object symbol type, |
284 |
libc_cv_asm_unique_object, [dnl |
285 |
cat > conftest.s <<EOF |
286 |
@@ -1273,29 +1280,6 @@ if test $libc_cv_asm_unique_object = yes; then |
287 |
AC_DEFINE(HAVE_ASM_UNIQUE_OBJECT) |
288 |
fi |
289 |
|
290 |
-# For the multi-arch option we need support in the assembler. |
291 |
-if test "$multi_arch" = yes; then |
292 |
- if test "x$libc_cv_asm_type_prefix" != xno; then |
293 |
-AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support], |
294 |
- libc_cv_asm_gnu_indirect_function, [dnl |
295 |
-cat > conftest.s <<EOF |
296 |
-.type foo,%gnu_indirect_function |
297 |
-EOF |
298 |
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; |
299 |
-then |
300 |
- libc_cv_asm_gnu_indirect_function=yes |
301 |
-else |
302 |
- libc_cv_asm_gnu_indirect_function=no |
303 |
-fi |
304 |
-rm -f conftest*]) |
305 |
- else |
306 |
- libc_cv_asm_gnu_indirect_function=no |
307 |
- fi |
308 |
- if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then |
309 |
- AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support]) |
310 |
- fi |
311 |
-fi |
312 |
- |
313 |
AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive, |
314 |
[cat > conftest.s <<EOF |
315 |
${libc_cv_dot_text} |
316 |
diff --git a/configure b/configure |
317 |
index b6752d1..cf9a1db 100755 |
318 |
--- a/configure |
319 |
+++ b/configure |
320 |
@@ -3805,9 +3805,6 @@ else |
321 |
multi_arch=default |
322 |
fi |
323 |
|
324 |
-if test x"$multi_arch" != xno; then |
325 |
- multi_arch_d=/multiarch |
326 |
-fi |
327 |
|
328 |
# Check whether --enable-experimental-malloc was given. |
329 |
if test "${enable_experimental_malloc+set}" = set; then |
330 |
@@ -4241,6 +4238,140 @@ _ACEOF |
331 |
|
332 |
fi |
333 |
|
334 |
+# For the multi-arch option we need support in the assembler. |
335 |
+{ $as_echo "$as_me:$LINENO: checking for assembler gnu_indirect_function symbol type support" >&5 |
336 |
+$as_echo_n "checking for assembler gnu_indirect_function symbol type support... " >&6; } |
337 |
+if test "${libc_cv_asm_gnu_indirect_function+set}" = set; then |
338 |
+ $as_echo_n "(cached) " >&6 |
339 |
+else |
340 |
+ cat > conftest.s <<EOF |
341 |
+.type foo,%gnu_indirect_function |
342 |
+EOF |
343 |
+if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; |
344 |
+then |
345 |
+ libc_cv_asm_gnu_indirect_function=yes |
346 |
+else |
347 |
+ libc_cv_asm_gnu_indirect_function=no |
348 |
+fi |
349 |
+rm -f conftest* |
350 |
+fi |
351 |
+{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_gnu_indirect_function" >&5 |
352 |
+$as_echo "$libc_cv_asm_gnu_indirect_function" >&6; } |
353 |
+ |
354 |
+{ $as_echo "$as_me:$LINENO: checking whether .text pseudo-op must be used" >&5 |
355 |
+$as_echo_n "checking whether .text pseudo-op must be used... " >&6; } |
356 |
+if test "${libc_cv_dot_text+set}" = set; then |
357 |
+ $as_echo_n "(cached) " >&6 |
358 |
+else |
359 |
+ cat > conftest.s <<EOF |
360 |
+.text |
361 |
+EOF |
362 |
+libc_cv_dot_text= |
363 |
+if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' |
364 |
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 |
365 |
+ (eval $ac_try) 2>&5 |
366 |
+ ac_status=$? |
367 |
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 |
368 |
+ (exit $ac_status); }; }; then |
369 |
+ libc_cv_dot_text=.text |
370 |
+fi |
371 |
+rm -f conftest* |
372 |
+fi |
373 |
+ |
374 |
+if test -z "$libc_cv_dot_text"; then |
375 |
+ { $as_echo "$as_me:$LINENO: result: no" >&5 |
376 |
+$as_echo "no" >&6; } |
377 |
+else |
378 |
+ { $as_echo "$as_me:$LINENO: result: yes" >&5 |
379 |
+$as_echo "yes" >&6; } |
380 |
+fi |
381 |
+ |
382 |
+{ $as_echo "$as_me:$LINENO: checking for assembler global-symbol directive" >&5 |
383 |
+$as_echo_n "checking for assembler global-symbol directive... " >&6; } |
384 |
+if test "${libc_cv_asm_global_directive+set}" = set; then |
385 |
+ $as_echo_n "(cached) " >&6 |
386 |
+else |
387 |
+ libc_cv_asm_global_directive=UNKNOWN |
388 |
+for ac_globl in .globl .global .EXPORT; do |
389 |
+ cat > conftest.s <<EOF |
390 |
+ ${libc_cv_dot_text} |
391 |
+ ${ac_globl} foo |
392 |
+foo: |
393 |
+EOF |
394 |
+ if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' |
395 |
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 |
396 |
+ (eval $ac_try) 2>&5 |
397 |
+ ac_status=$? |
398 |
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 |
399 |
+ (exit $ac_status); }; }; then |
400 |
+ libc_cv_asm_global_directive=${ac_globl} |
401 |
+ fi |
402 |
+ rm -f conftest* |
403 |
+ test $libc_cv_asm_global_directive != UNKNOWN && break |
404 |
+done |
405 |
+fi |
406 |
+{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_global_directive" >&5 |
407 |
+$as_echo "$libc_cv_asm_global_directive" >&6; } |
408 |
+if test $libc_cv_asm_global_directive = UNKNOWN; then |
409 |
+ { { $as_echo "$as_me:$LINENO: error: cannot determine asm global directive" >&5 |
410 |
+$as_echo "$as_me: error: cannot determine asm global directive" >&2;} |
411 |
+ { (exit 1); exit 1; }; } |
412 |
+else |
413 |
+ cat >>confdefs.h <<_ACEOF |
414 |
+#define ASM_GLOBAL_DIRECTIVE ${libc_cv_asm_global_directive} |
415 |
+_ACEOF |
416 |
+ |
417 |
+fi |
418 |
+ |
419 |
+{ $as_echo "$as_me:$LINENO: checking for assembler .type directive prefix" >&5 |
420 |
+$as_echo_n "checking for assembler .type directive prefix... " >&6; } |
421 |
+if test "${libc_cv_asm_type_prefix+set}" = set; then |
422 |
+ $as_echo_n "(cached) " >&6 |
423 |
+else |
424 |
+ libc_cv_asm_type_prefix=no |
425 |
+for ac_try_prefix in '@' '%' '#'; do |
426 |
+ cat > conftest.s <<EOF |
427 |
+ ${libc_cv_dot_text} |
428 |
+ ${libc_cv_asm_global_directive} foo |
429 |
+ .type foo, ${ac_try_prefix}object |
430 |
+ .size foo, 1 |
431 |
+foo: |
432 |
+ .byte 1 |
433 |
+EOF |
434 |
+ if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' |
435 |
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 |
436 |
+ (eval $ac_try) 2>&5 |
437 |
+ ac_status=$? |
438 |
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 |
439 |
+ (exit $ac_status); }; }; then |
440 |
+ libc_cv_asm_type_prefix=${ac_try_prefix} |
441 |
+ fi |
442 |
+ rm -f conftest* |
443 |
+ test "x$libc_cv_asm_type_prefix" != xno && break |
444 |
+done |
445 |
+fi |
446 |
+{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_type_prefix" >&5 |
447 |
+$as_echo "$libc_cv_asm_type_prefix" >&6; } |
448 |
+if test "x$libc_cv_asm_type_prefix" != xno; then |
449 |
+ cat >>confdefs.h <<_ACEOF |
450 |
+#define ASM_TYPE_DIRECTIVE_PREFIX ${libc_cv_asm_type_prefix} |
451 |
+_ACEOF |
452 |
+ |
453 |
+fi |
454 |
+ |
455 |
+if test x"$libc_cv_asm_gnu_indirect_function" != xyes -a x"$libc_cv_asm_type_prefix" = xno; then |
456 |
+ if test x"$multi_arch" = xyes; then |
457 |
+ { { $as_echo "$as_me:$LINENO: error: --enable-multi-arch support requires assembler and linker support" >&5 |
458 |
+$as_echo "$as_me: error: --enable-multi-arch support requires assembler and linker support" >&2;} |
459 |
+ { (exit 1); exit 1; }; } |
460 |
+ else |
461 |
+ multi_arch=no |
462 |
+ fi |
463 |
+fi |
464 |
+if test x"$multi_arch" != xno; then |
465 |
+ multi_arch_d=/multiarch |
466 |
+fi |
467 |
+ |
468 |
# Compute the list of sysdep directories for this configuration. |
469 |
# This can take a while to compute. |
470 |
sysdep_dir=$srcdir/sysdeps |
471 |
@@ -4357,35 +4488,14 @@ done |
472 |
|
473 |
# If the assembler supports gnu_indirect_function symbol type and the |
474 |
# architecture supports multi-arch, we enable multi-arch by default. |
475 |
-if test "$multi_arch" = default; then |
476 |
-{ $as_echo "$as_me:$LINENO: checking for assembler gnu_indirect_function symbol type support" >&5 |
477 |
-$as_echo_n "checking for assembler gnu_indirect_function symbol type support... " >&6; } |
478 |
-if test "${libc_cv_asm_gnu_indirect_function+set}" = set; then |
479 |
- $as_echo_n "(cached) " >&6 |
480 |
-else |
481 |
- cat > conftest.s <<EOF |
482 |
-.type foo,%gnu_indirect_function |
483 |
-EOF |
484 |
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; |
485 |
-then |
486 |
- libc_cv_asm_gnu_indirect_function=yes |
487 |
-else |
488 |
- libc_cv_asm_gnu_indirect_function=no |
489 |
-fi |
490 |
-rm -f conftest* |
491 |
-fi |
492 |
-{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_gnu_indirect_function" >&5 |
493 |
-$as_echo "$libc_cv_asm_gnu_indirect_function" >&6; } |
494 |
+case $sysnames_add_ons$sysnames in |
495 |
+*"$multi_arch_d"*) |
496 |
+ ;; |
497 |
+*) |
498 |
multi_arch=no |
499 |
- if test "$libc_cv_asm_gnu_indirect_function" = yes; then |
500 |
- case $sysnames_add_ons$sysnames in |
501 |
- *"$multi_arch_d"*) |
502 |
- multi_arch=yes |
503 |
- ;; |
504 |
- esac |
505 |
- fi |
506 |
-fi |
507 |
-if test x"$multi_arch" = xyes; then |
508 |
+ ;; |
509 |
+esac |
510 |
+if test x"$multi_arch" != xno; then |
511 |
cat >>confdefs.h <<\_ACEOF |
512 |
#define USE_MULTIARCH 1 |
513 |
_ACEOF |
514 |
@@ -5916,71 +6026,6 @@ if test $libc_cv_need_minus_P = yes; then |
515 |
asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives." |
516 |
fi |
517 |
|
518 |
-{ $as_echo "$as_me:$LINENO: checking whether .text pseudo-op must be used" >&5 |
519 |
-$as_echo_n "checking whether .text pseudo-op must be used... " >&6; } |
520 |
-if test "${libc_cv_dot_text+set}" = set; then |
521 |
- $as_echo_n "(cached) " >&6 |
522 |
-else |
523 |
- cat > conftest.s <<EOF |
524 |
-.text |
525 |
-EOF |
526 |
-libc_cv_dot_text= |
527 |
-if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' |
528 |
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 |
529 |
- (eval $ac_try) 2>&5 |
530 |
- ac_status=$? |
531 |
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 |
532 |
- (exit $ac_status); }; }; then |
533 |
- libc_cv_dot_text=.text |
534 |
-fi |
535 |
-rm -f conftest* |
536 |
-fi |
537 |
- |
538 |
-if test -z "$libc_cv_dot_text"; then |
539 |
- { $as_echo "$as_me:$LINENO: result: no" >&5 |
540 |
-$as_echo "no" >&6; } |
541 |
-else |
542 |
- { $as_echo "$as_me:$LINENO: result: yes" >&5 |
543 |
-$as_echo "yes" >&6; } |
544 |
-fi |
545 |
- |
546 |
-{ $as_echo "$as_me:$LINENO: checking for assembler global-symbol directive" >&5 |
547 |
-$as_echo_n "checking for assembler global-symbol directive... " >&6; } |
548 |
-if test "${libc_cv_asm_global_directive+set}" = set; then |
549 |
- $as_echo_n "(cached) " >&6 |
550 |
-else |
551 |
- libc_cv_asm_global_directive=UNKNOWN |
552 |
-for ac_globl in .globl .global .EXPORT; do |
553 |
- cat > conftest.s <<EOF |
554 |
- ${libc_cv_dot_text} |
555 |
- ${ac_globl} foo |
556 |
-foo: |
557 |
-EOF |
558 |
- if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' |
559 |
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 |
560 |
- (eval $ac_try) 2>&5 |
561 |
- ac_status=$? |
562 |
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 |
563 |
- (exit $ac_status); }; }; then |
564 |
- libc_cv_asm_global_directive=${ac_globl} |
565 |
- fi |
566 |
- rm -f conftest* |
567 |
- test $libc_cv_asm_global_directive != UNKNOWN && break |
568 |
-done |
569 |
-fi |
570 |
-{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_global_directive" >&5 |
571 |
-$as_echo "$libc_cv_asm_global_directive" >&6; } |
572 |
-if test $libc_cv_asm_global_directive = UNKNOWN; then |
573 |
- { { $as_echo "$as_me:$LINENO: error: cannot determine asm global directive" >&5 |
574 |
-$as_echo "$as_me: error: cannot determine asm global directive" >&2;} |
575 |
- { (exit 1); exit 1; }; } |
576 |
-else |
577 |
- cat >>confdefs.h <<_ACEOF |
578 |
-#define ASM_GLOBAL_DIRECTIVE ${libc_cv_asm_global_directive} |
579 |
-_ACEOF |
580 |
- |
581 |
-fi |
582 |
- |
583 |
{ $as_echo "$as_me:$LINENO: checking for .set assembler directive" >&5 |
584 |
$as_echo_n "checking for .set assembler directive... " >&6; } |
585 |
if test "${libc_cv_asm_set_directive+set}" = set; then |
586 |
@@ -6016,42 +6061,6 @@ _ACEOF |
587 |
|
588 |
fi |
589 |
|
590 |
-{ $as_echo "$as_me:$LINENO: checking for assembler .type directive prefix" >&5 |
591 |
-$as_echo_n "checking for assembler .type directive prefix... " >&6; } |
592 |
-if test "${libc_cv_asm_type_prefix+set}" = set; then |
593 |
- $as_echo_n "(cached) " >&6 |
594 |
-else |
595 |
- libc_cv_asm_type_prefix=no |
596 |
-for ac_try_prefix in '@' '%' '#'; do |
597 |
- cat > conftest.s <<EOF |
598 |
- ${libc_cv_dot_text} |
599 |
- ${libc_cv_asm_global_directive} foo |
600 |
- .type foo, ${ac_try_prefix}object |
601 |
- .size foo, 1 |
602 |
-foo: |
603 |
- .byte 1 |
604 |
-EOF |
605 |
- if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5' |
606 |
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 |
607 |
- (eval $ac_try) 2>&5 |
608 |
- ac_status=$? |
609 |
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 |
610 |
- (exit $ac_status); }; }; then |
611 |
- libc_cv_asm_type_prefix=${ac_try_prefix} |
612 |
- fi |
613 |
- rm -f conftest* |
614 |
- test "x$libc_cv_asm_type_prefix" != xno && break |
615 |
-done |
616 |
-fi |
617 |
-{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_type_prefix" >&5 |
618 |
-$as_echo "$libc_cv_asm_type_prefix" >&6; } |
619 |
-if test "x$libc_cv_asm_type_prefix" != xno; then |
620 |
- cat >>confdefs.h <<_ACEOF |
621 |
-#define ASM_TYPE_DIRECTIVE_PREFIX ${libc_cv_asm_type_prefix} |
622 |
-_ACEOF |
623 |
- |
624 |
-fi |
625 |
- |
626 |
{ $as_echo "$as_me:$LINENO: checking for assembler gnu_unique_object symbol type" >&5 |
627 |
$as_echo_n "checking for assembler gnu_unique_object symbol type... " >&6; } |
628 |
if test "${libc_cv_asm_unique_object+set}" = set; then |
629 |
@@ -6078,37 +6087,6 @@ _ACEOF |
630 |
|
631 |
fi |
632 |
|
633 |
-# For the multi-arch option we need support in the assembler. |
634 |
-if test "$multi_arch" = yes; then |
635 |
- if test "x$libc_cv_asm_type_prefix" != xno; then |
636 |
-{ $as_echo "$as_me:$LINENO: checking for assembler gnu_indirect_function symbol type support" >&5 |
637 |
-$as_echo_n "checking for assembler gnu_indirect_function symbol type support... " >&6; } |
638 |
-if test "${libc_cv_asm_gnu_indirect_function+set}" = set; then |
639 |
- $as_echo_n "(cached) " >&6 |
640 |
-else |
641 |
- cat > conftest.s <<EOF |
642 |
-.type foo,%gnu_indirect_function |
643 |
-EOF |
644 |
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; |
645 |
-then |
646 |
- libc_cv_asm_gnu_indirect_function=yes |
647 |
-else |
648 |
- libc_cv_asm_gnu_indirect_function=no |
649 |
-fi |
650 |
-rm -f conftest* |
651 |
-fi |
652 |
-{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_gnu_indirect_function" >&5 |
653 |
-$as_echo "$libc_cv_asm_gnu_indirect_function" >&6; } |
654 |
- else |
655 |
- libc_cv_asm_gnu_indirect_function=no |
656 |
- fi |
657 |
- if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then |
658 |
- { { $as_echo "$as_me:$LINENO: error: --enable-multi-arch support requires assembler and linker support" >&5 |
659 |
-$as_echo "$as_me: error: --enable-multi-arch support requires assembler and linker support" >&2;} |
660 |
- { (exit 1); exit 1; }; } |
661 |
- fi |
662 |
-fi |
663 |
- |
664 |
{ $as_echo "$as_me:$LINENO: checking for .symver assembler directive" >&5 |
665 |
$as_echo_n "checking for .symver assembler directive... " >&6; } |
666 |
if test "${libc_cv_asm_symver_directive+set}" = set; then |
667 |
-- |
668 |
1.7.2 |