Gentoo Archives: gentoo-commits

From: "Mike Frysinger (vapier)" <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in src/patchsets/glibc/2.14.1: 6226_all_arm-glibc-2.15-hardfp.patch README.history
Date: Thu, 31 May 2012 04:49:07
Message-Id: 20120531044851.6294F2004B@flycatcher.gentoo.org
1 vapier 12/05/31 04:48:51
2
3 Modified: README.history
4 Added: 6226_all_arm-glibc-2.15-hardfp.patch
5 Log:
6 add arm hardfp ldso update to 2.14 too #417287
7
8 Revision Changes Path
9 1.17 src/patchsets/glibc/2.14.1/README.history
10
11 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14.1/README.history?rev=1.17&view=markup
12 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14.1/README.history?rev=1.17&content-type=text/plain
13 diff : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14.1/README.history?r1=1.16&r2=1.17
14
15 Index: README.history
16 ===================================================================
17 RCS file: /var/cvsroot/gentoo/src/patchsets/glibc/2.14.1/README.history,v
18 retrieving revision 1.16
19 retrieving revision 1.17
20 diff -u -r1.16 -r1.17
21 --- README.history 8 May 2012 16:25:52 -0000 1.16
22 +++ README.history 31 May 2012 04:48:51 -0000 1.17
23 @@ -1,3 +1,6 @@
24 +10 31 May 2012
25 + + 6226_all_arm-glibc-2.15-hardfp.patch
26 +
27 9 08 May 2012
28 + 6901_all_ia64-sysdep-errno.patch
29
30
31
32
33 1.1 src/patchsets/glibc/2.14.1/6226_all_arm-glibc-2.15-hardfp.patch
34
35 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14.1/6226_all_arm-glibc-2.15-hardfp.patch?rev=1.1&view=markup
36 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14.1/6226_all_arm-glibc-2.15-hardfp.patch?rev=1.1&content-type=text/plain
37
38 Index: 6226_all_arm-glibc-2.15-hardfp.patch
39 ===================================================================
40 squashed & backported multiple patches to use the new arm hardfp ldso name
41
42 From d3b36017d43af570ca7f79e711749dd4ade76979 Mon Sep 17 00:00:00 2001
43 From: Carlos O'Donell <carlos_odonell@××××××.com>
44 Date: Mon, 7 May 2012 22:14:44 -0400
45 Subject: [PATCH] ARM: Use /lib/ld-linux-armhf.so.3 for the hard-float ABI.
46
47 The hard-float ABI will now use /lib/ld-linux-armhf.so.3.
48 We detect the use of the hard-float ABI and select the
49 appropriate dynamic linker name. You must have a new or
50 patched compiler which also uses the new dynamic loader
51 name when the hard-float ABI is selected.
52 ---
53 ChangeLog.arm | 8 ++
54 sysdeps/arm/configure | 184 ++++++++++++++++++++++++++++++++++++++++++++
55 sysdeps/arm/configure.in | 17 ++++
56 sysdeps/arm/shlib-versions | 8 +-
57 4 files changed, 216 insertions(+), 1 deletion(-)
58 mode change 100644 => 100755 sysdeps/arm/configure
59
60 2012-05-07 Carlos O'Donell <carlos_odonell@××××××.com>
61
62 * sysdeps/arm/configure.in: Set libc_cv_arm_pcs_vfp.
63 If libc_cv_arm_pcs_vfp equals yes then define HAVE_ARM_PCS_VFP.
64 * sysdeps/arm/configure: Regenerate.
65 * sysdeps/arm/shlib-versions: If HAVE_ARM_PCS_VFP is defined
66 then use ld=/lib/ld-linux-armhf.so.3.
67
68 diff --git a/ports/sysdeps/arm/configure b/ports/sysdeps/arm/configure
69 old mode 100644
70 new mode 100755
71 index 651d46a..665151f
72 --- a/ports/sysdeps/arm/configure
73 +++ b/ports/sysdeps/arm/configure
74 @@ -1,9 +1,108 @@
75 +
76 +# as_fn_set_status STATUS
77 +# -----------------------
78 +# Set $? to STATUS, without forking.
79 +as_fn_set_status ()
80 +{
81 + return $1
82 +} # as_fn_set_status
83 +
84 +# as_fn_exit STATUS
85 +# -----------------
86 +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
87 +as_fn_exit ()
88 +{
89 + set +e
90 + as_fn_set_status $1
91 + exit $1
92 +} # as_fn_exit
93 +# as_fn_arith ARG...
94 +# ------------------
95 +# Perform arithmetic evaluation on the ARGs, and store the result in the
96 +# global $as_val. Take advantage of shells that can avoid forks. The arguments
97 +# must be portable across $(()) and expr.
98 +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
99 + eval 'as_fn_arith ()
100 + {
101 + as_val=$(( $* ))
102 + }'
103 +else
104 + as_fn_arith ()
105 + {
106 + as_val=`expr "$@" || test $? -eq 1`
107 + }
108 +fi # as_fn_arith
109 +
110 +if expr a : '\(a\)' >/dev/null 2>&1 &&
111 + test "X`expr 00001 : '.*\(...\)'`" = X001; then
112 + as_expr=expr
113 +else
114 + as_expr=false
115 +fi
116 +
117 +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
118 + as_basename=basename
119 +else
120 + as_basename=false
121 +fi
122 +
123 +as_me=`$as_basename -- "$0" ||
124 +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
125 + X"$0" : 'X\(//\)$' \| \
126 + X"$0" : 'X\(/\)' \| . 2>/dev/null ||
127 +$as_echo X/"$0" |
128 + sed '/^.*\/\([^/][^/]*\)\/*$/{
129 + s//\1/
130 + q
131 + }
132 + /^X\/\(\/\/\)$/{
133 + s//\1/
134 + q
135 + }
136 + /^X\/\(\/\).*/{
137 + s//\1/
138 + q
139 + }
140 + s/.*/./; q'`
141 +
142 +
143 + as_lineno_1=$LINENO as_lineno_1a=$LINENO
144 + as_lineno_2=$LINENO as_lineno_2a=$LINENO
145 + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
146 + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
147 + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
148 + sed -n '
149 + p
150 + /[$]LINENO/=
151 + ' <$as_myself |
152 + sed '
153 + s/[$]LINENO.*/&-/
154 + t lineno
155 + b
156 + :lineno
157 + N
158 + :loop
159 + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
160 + t loop
161 + s/-\n.*//
162 + ' >$as_me.lineno &&
163 + chmod +x "$as_me.lineno" ||
164 + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
165 +
166 + # Don't try to exec as it changes $[0], causing all sort of problems
167 + # (the dirname of $[0] is not the place where we might find the
168 + # original and so on. Autoconf is especially sensitive to this).
169 + . "./$as_me.lineno"
170 + # Exit status is that of the last command.
171 + exit
172 +}
173 +
174 # This file is generated from configure.in by Autoconf. DO NOT EDIT!
175 # Local configure fragment for sysdeps/arm.
176
177 -{ $as_echo "$as_me:$LINENO: checking whether the CFI directive .cfi_sections is supported" >&5
178 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the CFI directive .cfi_sections is supported" >&5
179 $as_echo_n "checking whether the CFI directive .cfi_sections is supported... " >&6; }
180 -if test "${libc_cv_asm_cfi_directive_sections+set}" = set; then
181 +if ${libc_cv_asm_cfi_directive_sections+:} false; then :
182 $as_echo_n "(cached) " >&6
183 else
184 cat > conftest.s <<EOF
185 @@ -13,21 +112,186 @@ else
186 .cfi_endproc
187 EOF
188 if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
189 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
190 + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
191 (eval $ac_try) 2>&5
192 ac_status=$?
193 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
194 - (exit $ac_status); }; }; then
195 + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
196 + test $ac_status = 0; }; }; then
197 libc_cv_asm_cfi_directive_sections=yes
198 else
199 libc_cv_asm_cfi_directive_sections=no
200 fi
201 rm -f conftest*
202 fi
203 -{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_cfi_directive_sections" >&5
204 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_cfi_directive_sections" >&5
205 $as_echo "$libc_cv_asm_cfi_directive_sections" >&6; }
206 if test $libc_cv_asm_cfi_directive_sections != yes; then
207 - { { $as_echo "$as_me:$LINENO: error: need .cfi_sections in this configuration" >&5
208 -$as_echo "$as_me: error: need .cfi_sections in this configuration" >&2;}
209 - { (exit 1); exit 1; }; }
210 + as_fn_error $? "need .cfi_sections in this configuration" "$LINENO" 5
211 +fi
212 +
213 +# We check to see if the compiler and flags are
214 +# selecting the hard-float ABI and if they are then
215 +# we set libc_cv_arm_pcs_vfp to yes which causes
216 +# HAVE_ARM_PCS_VFP to be defined in config.h and
217 +# in include/libc-symbols.h and thus available to
218 +# shlib-versions to select the appropriate name for
219 +# the dynamic linker via %ifdef.
220 +
221 +
222 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
223 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
224 +if ${ac_cv_path_GREP+:} false; then :
225 + $as_echo_n "(cached) " >&6
226 +else
227 + if test -z "$GREP"; then
228 + ac_path_GREP_found=false
229 + # Loop through the user's path and test for each of PROGNAME-LIST
230 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
231 +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
232 +do
233 + IFS=$as_save_IFS
234 + test -z "$as_dir" && as_dir=.
235 + for ac_prog in grep ggrep; do
236 + for ac_exec_ext in '' $ac_executable_extensions; do
237 + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
238 + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
239 +# Check for GNU ac_path_GREP and select it if it is found.
240 + # Check for GNU $ac_path_GREP
241 +case `"$ac_path_GREP" --version 2>&1` in
242 +*GNU*)
243 + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
244 +*)
245 + ac_count=0
246 + $as_echo_n 0123456789 >"conftest.in"
247 + while :
248 + do
249 + cat "conftest.in" "conftest.in" >"conftest.tmp"
250 + mv "conftest.tmp" "conftest.in"
251 + cp "conftest.in" "conftest.nl"
252 + $as_echo 'GREP' >> "conftest.nl"
253 + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
254 + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
255 + as_fn_arith $ac_count + 1 && ac_count=$as_val
256 + if test $ac_count -gt ${ac_path_GREP_max-0}; then
257 + # Best one so far, save it but keep looking for a better one
258 + ac_cv_path_GREP="$ac_path_GREP"
259 + ac_path_GREP_max=$ac_count
260 + fi
261 + # 10*(2^10) chars as input seems more than enough
262 + test $ac_count -gt 10 && break
263 + done
264 + rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
265 +esac
266 +
267 + $ac_path_GREP_found && break 3
268 + done
269 + done
270 + done
271 +IFS=$as_save_IFS
272 + if test -z "$ac_cv_path_GREP"; then
273 + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
274 + fi
275 +else
276 + ac_cv_path_GREP=$GREP
277 +fi
278 +
279 +fi
280 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
281 +$as_echo "$ac_cv_path_GREP" >&6; }
282 + GREP="$ac_cv_path_GREP"
283 +
284 +
285 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
286 +$as_echo_n "checking for egrep... " >&6; }
287 +if ${ac_cv_path_EGREP+:} false; then :
288 + $as_echo_n "(cached) " >&6
289 +else
290 + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
291 + then ac_cv_path_EGREP="$GREP -E"
292 + else
293 + if test -z "$EGREP"; then
294 + ac_path_EGREP_found=false
295 + # Loop through the user's path and test for each of PROGNAME-LIST
296 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
297 +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
298 +do
299 + IFS=$as_save_IFS
300 + test -z "$as_dir" && as_dir=.
301 + for ac_prog in egrep; do
302 + for ac_exec_ext in '' $ac_executable_extensions; do
303 + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
304 + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
305 +# Check for GNU ac_path_EGREP and select it if it is found.
306 + # Check for GNU $ac_path_EGREP
307 +case `"$ac_path_EGREP" --version 2>&1` in
308 +*GNU*)
309 + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
310 +*)
311 + ac_count=0
312 + $as_echo_n 0123456789 >"conftest.in"
313 + while :
314 + do
315 + cat "conftest.in" "conftest.in" >"conftest.tmp"
316 + mv "conftest.tmp" "conftest.in"
317 + cp "conftest.in" "conftest.nl"
318 + $as_echo 'EGREP' >> "conftest.nl"
319 + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
320 + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
321 + as_fn_arith $ac_count + 1 && ac_count=$as_val
322 + if test $ac_count -gt ${ac_path_EGREP_max-0}; then
323 + # Best one so far, save it but keep looking for a better one
324 + ac_cv_path_EGREP="$ac_path_EGREP"
325 + ac_path_EGREP_max=$ac_count
326 + fi
327 + # 10*(2^10) chars as input seems more than enough
328 + test $ac_count -gt 10 && break
329 + done
330 + rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
331 +esac
332 +
333 + $ac_path_EGREP_found && break 3
334 + done
335 + done
336 + done
337 +IFS=$as_save_IFS
338 + if test -z "$ac_cv_path_EGREP"; then
339 + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
340 + fi
341 +else
342 + ac_cv_path_EGREP=$EGREP
343 +fi
344 +
345 + fi
346 +fi
347 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
348 +$as_echo "$ac_cv_path_EGREP" >&6; }
349 + EGREP="$ac_cv_path_EGREP"
350 +
351 +
352 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is using the ARM hard-float ABI" >&5
353 +$as_echo_n "checking whether the compiler is using the ARM hard-float ABI... " >&6; }
354 +if ${libc_cv_arm_pcs_vfp+:} false; then :
355 + $as_echo_n "(cached) " >&6
356 +else
357 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext
358 +/* end confdefs.h. */
359 +#ifdef __ARM_PCS_VFP
360 + yes
361 + #endif
362 +
363 +_ACEOF
364 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
365 + $EGREP "yes" >/dev/null 2>&1; then :
366 + libc_cv_arm_pcs_vfp=yes
367 +else
368 + libc_cv_arm_pcs_vfp=no
369 +fi
370 +rm -f conftest*
371 +
372 +fi
373 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arm_pcs_vfp" >&5
374 +$as_echo "$libc_cv_arm_pcs_vfp" >&6; }
375 +if test $libc_cv_arm_pcs_vfp = yes; then
376 + $as_echo "#define HAVE_ARM_PCS_VFP 1" >>confdefs.h
377 +
378 fi
379 diff --git a/ports/sysdeps/arm/configure.in b/ports/sysdeps/arm/configure.in
380 index 706add2..64cef5f 100644
381 --- a/ports/sysdeps/arm/configure.in
382 +++ b/ports/sysdeps/arm/configure.in
383 @@ -49,3 +49,20 @@ EOF
384 if test $libc_cv_asm_cfi_directive_sections != yes; then
385 AC_MSG_ERROR([need .cfi_sections in this configuration])
386 fi
387 +
388 +# We check to see if the compiler and flags are
389 +# selecting the hard-float ABI and if they are then
390 +# we set libc_cv_arm_pcs_vfp to yes which causes
391 +# HAVE_ARM_PCS_VFP to be defined in config.h and
392 +# in include/libc-symbols.h and thus available to
393 +# shlib-versions to select the appropriate name for
394 +# the dynamic linker via %ifdef.
395 +AC_CACHE_CHECK([whether the compiler is using the ARM hard-float ABI],
396 + [libc_cv_arm_pcs_vfp],
397 + [AC_EGREP_CPP(yes,[#ifdef __ARM_PCS_VFP
398 + yes
399 + #endif
400 + ], libc_cv_arm_pcs_vfp=yes, libc_cv_arm_pcs_vfp=no)])
401 +if test $libc_cv_arm_pcs_vfp = yes; then
402 + AC_DEFINE(HAVE_ARM_PCS_VFP)
403 +fi
404 diff --git a/ports/sysdeps/arm/shlib-versions b/ports/sysdeps/arm/shlib-versions
405 index 626d58b..1ac597a 100644
406 --- a/ports/sysdeps/arm/shlib-versions
407 +++ b/ports/sysdeps/arm/shlib-versions
408 @@ -1,4 +1,10 @@
409 arm.*-.*-linux-gnueabi.* DEFAULT GLIBC_2.4
410
411 -arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3
412 +%ifdef HAVE_ARM_PCS_VFP
413 +# The EABI-derived hard-float ABI uses a new dynamic linker.
414 +arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3
415 +%else
416 +# The EABI-derived soft-float ABI continues to use ld-linux.so.3.
417 +arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3
418 +%endif
419 arm.*-.*-linux.* ld=ld-linux.so.2
420 --
421 1.7.9.7
422
423 From 6a43ec980c5a0500149ef37d4854eac0e270da6f Mon Sep 17 00:00:00 2001
424 From: Carlos O'Donell <carlos_odonell@××××××.com>
425 Date: Mon, 7 May 2012 16:04:41 -0400
426 Subject: [PATCH] ARM: Define HAVE_ARM_PCS_VFP in config.h.
427
428 If the compiler and flags would select the hard-float ABI
429 then the ARM configure fragment will set HAVE_ARM_PCS_VFP.
430 This is later used by the ARM shlib-versions to select
431 the appropriately named dynamic linker.
432 ---
433 ChangeLog | 4 ++++
434 config.h.in | 3 +++
435 2 files changed, 7 insertions(+)
436
437 2012-05-08 Carlos O'Donell <carlos_odonell@××××××.com>
438
439 * config.h.in: Add HAVE_ARM_PCS_VFP.
440
441 diff --git a/config.h.in b/config.h.in
442 index 81704a1..787873b 100644
443 --- a/config.h.in
444 +++ b/config.h.in
445 @@ -218,4 +218,7 @@
446
447 #define HAVE_REGEX 1
448
449 +/* The ARM hard-float ABI is being used. */
450 +#undef HAVE_ARM_PCS_VFP
451 +
452 #endif
453 --
454 1.7.9.7