[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#537586: binutils: breaks function cancellation on armel



Package: binutils
Version: 2.19.51.20090714-1
Severity: important

It took me a while to understand the problem. tst-cancelx4 from the GNU 
libc testsuite, when linked with binutils 2.19.51.20090704-1 or
2.19.51.20090714-1 fails with:

| cleanup handler not called for 'fdatasync'

The problem does not occur with the exact same packages but binutils
downgraded to squeeze's version (2.19.1-1).

Please find below the diff of the assembly dumps.

--- tst-cancelx4.binutils-squeeze.dump	2009-07-19 17:06:17.000000000 +0200
+++ tst-cancelx4.binutils-sid.dump	2009-07-19 17:06:23.000000000 +0200
@@ -1,15 +1,15 @@
 
-tst-cancelx4.binutils-squeeze:     file format elf32-littlearm
+tst-cancelx4.binutils-sid:     file format elf32-littlearm
 
 Program Header:
 0x70000001 off    0x000021c4 vaddr 0x0000a1c4 paddr 0x0000a1c4 align 2**2
-         filesz 0x00000040 memsz 0x00000040 flags r--
+         filesz 0x00000048 memsz 0x00000048 flags r--
     PHDR off    0x00000034 vaddr 0x00008034 paddr 0x00008034 align 2**2
          filesz 0x00000120 memsz 0x00000120 flags r-x
   INTERP off    0x00000154 vaddr 0x00008154 paddr 0x00008154 align 2**0
          filesz 0x00000013 memsz 0x00000013 flags r--
     LOAD off    0x00000000 vaddr 0x00008000 paddr 0x00008000 align 2**15
-         filesz 0x00002208 memsz 0x00002208 flags r-x
+         filesz 0x00002210 memsz 0x00002210 flags r-x
     LOAD off    0x00002ef4 vaddr 0x00012ef4 paddr 0x00012ef4 align 2**15
          filesz 0x00000220 memsz 0x00000268 flags rw-
  DYNAMIC off    0x00002f00 vaddr 0x00012f00 paddr 0x00012f00 align 2**2
@@ -87,11 +87,11 @@
     818c:	00000014 	.word	0x00000014
     8190:	00000003 	.word	0x00000003
     8194:	00554e47 	.word	0x00554e47
-    8198:	75f26671 	ldrbvc	r6, [r2, #1649]!
-    819c:	314e1444 	cmpcc	lr, r4, asr #8
-    81a0:	c6e16a24 	strbtgt	r6, [r1], r4, lsr #20
-    81a4:	7a992aa6 	bvc	fe652c44 <__bss_end__+0xfe63fae8>
-    81a8:	a5126950 	ldrge	r6, [r2, #-2384]
+    8198:	9f5d28ce 	svcls	0x005d28ce
+    819c:	ec6c323f 	sfm	f3, 2, [ip], #-252
+    81a0:	70bbdb75 	adcsvc	sp, fp, r5, ror fp
+    81a4:	f0334c2f 	undefined instruction 0xf0334c2f
+    81a8:	03726112 	cmneq	r2, #-2147483644	; 0x80000004
 Disassembly of section .hash:
 
 000081ac <.hash>:
@@ -2216,10 +2216,12 @@
     a1f8:	8003acb0 	strhhi	sl, [r3], -r0
     a1fc:	7ffffa28 	svcvc	0x00fffa28
     a200:	80a8b0b0 	.word	0x80a8b0b0
+    a204:	7ffffa5c 	svcvc	0x00fffa5c
+    a208:	00000001 	andeq	r0, r0, r1
 Disassembly of section .eh_frame:
 
-0000a204 <__FRAME_END__>:
-    a204:	00000000 	.word	0x00000000
+0000a20c <__FRAME_END__>:
+    a20c:	00000000 	.word	0x00000000
 Disassembly of section .init_array:
 
 00012ef4 <__frame_dummy_init_array_entry>:
@@ -2405,6 +2407,22 @@
 
 00013158 <temp_name_list>:
    13158:	00000000 	.word	0x00000000
+Disassembly of section .ARM.attributes:
+
+00000000 <.ARM.attributes>:
+   0:	00002d41 	andeq	r2, r0, r1, asr #26
+   4:	61656100 	cmnvs	r5, r0, lsl #2
+   8:	01006962 	tsteq	r0, r2, ror #18
+   c:	00000023 	andeq	r0, r0, r3, lsr #32
+  10:	4d524105 	ldfmie	f4, [r2, #-20]
+  14:	4d445439 	cfstrdmi	mvd5, [r4, #-228]
+  18:	02060049 	andeq	r0, r6, #73	; 0x49
+  1c:	01090108 	tsteq	r9, r8, lsl #2
+  20:	01140412 	tsteq	r4, r2, lsl r4
+  24:	03170115 	tsteq	r7, #1073741829	; 0x40000005
+  28:	021a0118 	andseq	r0, sl, #6	; 0x6
+  2c:	Address 0x0000002c is out of bounds.
+
 Disassembly of section .comment:
 
 00000000 <.comment>:
@@ -5931,19 +5949,3 @@
  150:	00009d24 	andeq	r9, r0, r4, lsr #26
  154:	00009d30 	andeq	r9, r0, r0, lsr sp
 	...
-Disassembly of section .ARM.attributes:
-
-00000000 <.ARM.attributes>:
-   0:	00002d41 	andeq	r2, r0, r1, asr #26
-   4:	61656100 	cmnvs	r5, r0, lsl #2
-   8:	01006962 	tsteq	r0, r2, ror #18
-   c:	00000023 	andeq	r0, r0, r3, lsr #32
-  10:	4d524105 	ldfmie	f4, [r2, #-20]
-  14:	4d445439 	cfstrdmi	mvd5, [r4, #-228]
-  18:	02060049 	andeq	r0, r6, #73	; 0x49
-  1c:	01090108 	tsteq	r9, r8, lsl #2
-  20:	01140412 	tsteq	r4, r2, lsl r4
-  24:	03170115 	tsteq	r7, #1073741829	; 0x40000005
-  28:	01190118 	tsteq	r9, r8, lsl r1
-  2c:	Address 0x0000002c is out of bounds.
-

-- System Information:
Debian Release: 5.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: armel (armv5tejl)

Kernel: Linux 2.6.26-2-versatile
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages binutils depends on:
ii  libc6                  2.9-20            GNU C Library: Shared libraries
ii  libgcc1                1:4.4.0-10        GCC support library
ii  zlib1g                 1:1.2.3.3.dfsg-14 compression library - runtime

binutils recommends no packages.

Versions of packages binutils suggests:
pn  binutils-doc                  <none>     (no description available)

-- no debconf information



Reply to: