dsymutil vs current FSF gcc VTA merge
dsymutil vs current FSF gcc VTA merge
- Subject: dsymutil vs current FSF gcc VTA merge
- From: Jack Howarth <email@hidden>
- Date: Wed, 18 Nov 2009 14:06:49 -0500
Can anyone explain why the assembly posted at...
http://gcc.gnu.org/bugzilla/attachment.cgi?id=19024
would cause dsymutil to fail with an assertion when
compiled...
[ibook-dhum] f90/bug% as complex-sign-add_red_1_O1.s -o
complex-sign-add_red_1_O1.o
[ibook-dhum] f90/bug% gcc complex-sign-add_red_1_O1.o
[ibook-dhum] f90/bug% dsymutil a.out
Assertion failed: (orig_str), function FixReferences, file
/SourceCache/dwarf_utilities/dwarf_utilities-70/source/DWARFdSYM.cpp, line
3641.
Abort
The FSF gcc PR41473 (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41473)
has been tracking these failures since the var-tracking-association merge
into gcc trunk. Since that merge, dsymutil has been vary unstable and
we are unable to generate the .dSYM folder for a number of FSF gcc libs.
The assembly generated with -O0 doesn't exhibit this problem...
[ibook-dhum] f90/bug% rm -rf a.out*
[ibook-dhum] f90/bug% as complex-sign-add_red_1_O0.s -o
complex-sign-add_red_1_O0.o
[ibook-dhum] f90/bug% gcc complex-sign-add_red_1_O0.o
[ibook-dhum] f90/bug% dsymutil a.out
[ibook-dhum] f90/bug%
Dominique d'Humieres has opened radar #7397601 for this issue.
Unfortunately the dsymutil source is unavailable so no one
outside of Apple is able to look at this. However, I am wonder
if the differences between the two assembly files might give
a hint...
--- complex-sign-add_red_1_O0.s 2009-11-18 14:05:51.000000000 -0500
+++ complex-sign-add_red_1_O1.s 2009-11-18 14:06:24.000000000 -0500
@@ -42,78 +42,52 @@
LCFI0:
movl %esp, ëp
LCFI1:
- pushl %esi
+ subl $40, %esp
LCFI2:
- pushl ëx
-LCFI3:
- subl $48, %esp
-LCFI4:
- call ___i686.get_pc_thunk.bx
+ call ___i686.get_pc_thunk.cx
"L00000000001$pb":
+LVL0:
LM2:
- leal LC0-"L00000000001$pb"(ëx), êx
- movl (êx), íx
+ movl LC0-"L00000000001$pb"(ìx), íx
movl íx, -16(ëp)
- movl 4(êx), êx
+LVL1:
+ movl 4+LC0-"L00000000001$pb"(ìx), êx
movl êx, -12(ëp)
+LVL2:
LM3:
- leal LC0-"L00000000001$pb"(ëx), êx
- movl (êx), íx
movl íx, -24(ëp)
- movl 4(êx), êx
+LVL3:
movl êx, -20(ëp)
+LVL4:
LM4:
- leal LC0-"L00000000001$pb"(ëx), êx
- movl (êx), íx
- movl íx, -32(ëp)
- movl 4(êx), êx
- movl êx, -28(ëp)
-LM5:
- movl -24(ëp), %esi
- movl -20(ëp), ìx
- movl -32(ëp), íx
- movl -28(ëp), êx
-LM6:
- movl %esi, -44(ëp)
- movss -44(ëp), %xmm3
- movl ìx, -44(ëp)
- movss -44(ëp), %xmm2
- movl íx, -44(ëp)
- movss -44(ëp), %xmm1
- movl êx, -44(ëp)
- movss -44(ëp), %xmm0
-LM7:
+ movss -16(ëp), %xmm3
+ movss -12(ëp), %xmm2
+ movss -24(ëp), %xmm1
+ movss -20(ëp), %xmm0
addss %xmm3, %xmm1
addss %xmm2, %xmm0
- movss %xmm1, -44(ëp)
- movl -44(ëp), íx
- movss %xmm0, -44(ëp)
- movl -44(ëp), êx
- movl íx, -40(ëp)
- movl êx, -36(ëp)
-LM8:
- addl $48, %esp
- popl ëx
-LCFI5:
- popl %esi
-LCFI6:
- popl ëp
-LCFI7:
+ movss %xmm1, -32(ëp)
+LVL5:
+ movss %xmm0, -28(ëp)
+LVL6:
+LM5:
+ leave
+LCFI3:
ret
LFE0:
.globl _main
_main:
LFB1:
-LM9:
+LM6:
pushl ëp
-LCFI8:
+LCFI4:
movl %esp, ëp
-LCFI9:
+LCFI5:
subl $24, %esp
-LCFI10:
-LM10:
+LCFI6:
+LM7:
call _check_add_float
-LM11:
+LM8:
movl $0, (%esp)
call L_exit$stub
LFE1:
@@ -157,23 +131,8 @@
.byte 0xd
.byte 0x5
.byte 0x4
- .set L$set$6,LCFI4-LCFI1
+ .set L$set$6,LCFI3-LCFI1
.long L$set$6
- .byte 0x83
- .byte 0x4
- .byte 0x86
- .byte 0x3
- .byte 0x4
- .set L$set$7,LCFI5-LCFI4
- .long L$set$7
- .byte 0xc3
- .byte 0x4
- .set L$set$8,LCFI6-LCFI5
- .long L$set$8
- .byte 0xc6
- .byte 0x4
- .set L$set$9,LCFI7-LCFI6
- .long L$set$9
.byte 0xc5
.byte 0xc
.byte 0x4
@@ -181,24 +140,24 @@
.align 2
LEFDE0:
LSFDE2:
- .set L$set$10,LEFDE2-LASFDE2
- .long L$set$10
+ .set L$set$7,LEFDE2-LASFDE2
+ .long L$set$7
LASFDE2:
- .set L$set$11,Lframe0-Lsection__debug_frame
- .long L$set$11
+ .set L$set$8,Lframe0-Lsection__debug_frame
+ .long L$set$8
.long LFB1
- .set L$set$12,LFE1-LFB1
- .long L$set$12
+ .set L$set$9,LFE1-LFB1
+ .long L$set$9
.byte 0x4
- .set L$set$13,LCFI8-LFB1
- .long L$set$13
+ .set L$set$10,LCFI4-LFB1
+ .long L$set$10
.byte 0xe
.byte 0x8
.byte 0x85
.byte 0x2
.byte 0x4
- .set L$set$14,LCFI9-LCFI8
- .long L$set$14
+ .set L$set$11,LCFI5-LCFI4
+ .long L$set$11
.byte 0xd
.byte 0x5
.align 2
@@ -208,65 +167,65 @@
.section __DWARF,__debug_loc,regular,debug
Ldebug_loc0:
LLST0:
- .set L$set$15,LFB0-Ltext0
- .long L$set$15
- .set L$set$16,LCFI0-Ltext0
- .long L$set$16
+ .set L$set$12,LFB0-Ltext0
+ .long L$set$12
+ .set L$set$13,LCFI0-Ltext0
+ .long L$set$13
.word 0x2
.byte 0x74
.byte 0x4
- .set L$set$17,LCFI0-Ltext0
- .long L$set$17
- .set L$set$18,LCFI1-Ltext0
- .long L$set$18
+ .set L$set$14,LCFI0-Ltext0
+ .long L$set$14
+ .set L$set$15,LCFI1-Ltext0
+ .long L$set$15
.word 0x2
.byte 0x74
.byte 0x8
- .set L$set$19,LCFI1-Ltext0
- .long L$set$19
- .set L$set$20,LCFI7-Ltext0
- .long L$set$20
+ .set L$set$16,LCFI1-Ltext0
+ .long L$set$16
+ .set L$set$17,LCFI3-Ltext0
+ .long L$set$17
.word 0x2
.byte 0x75
.byte 0x8
- .set L$set$21,LCFI7-Ltext0
- .long L$set$21
- .set L$set$22,LFE0-Ltext0
- .long L$set$22
+ .set L$set$18,LCFI3-Ltext0
+ .long L$set$18
+ .set L$set$19,LFE0-Ltext0
+ .long L$set$19
.word 0x2
.byte 0x74
.byte 0x4
.long 0x0
.long 0x0
LLST1:
- .set L$set$23,LFB1-Ltext0
- .long L$set$23
- .set L$set$24,LCFI8-Ltext0
- .long L$set$24
+ .set L$set$20,LFB1-Ltext0
+ .long L$set$20
+ .set L$set$21,LCFI4-Ltext0
+ .long L$set$21
.word 0x2
.byte 0x74
.byte 0x4
- .set L$set$25,LCFI8-Ltext0
- .long L$set$25
- .set L$set$26,LCFI9-Ltext0
- .long L$set$26
+ .set L$set$22,LCFI4-Ltext0
+ .long L$set$22
+ .set L$set$23,LCFI5-Ltext0
+ .long L$set$23
.word 0x2
.byte 0x74
.byte 0x8
- .set L$set$27,LCFI9-Ltext0
- .long L$set$27
- .set L$set$28,LFE1-Ltext0
- .long L$set$28
+ .set L$set$24,LCFI5-Ltext0
+ .long L$set$24
+ .set L$set$25,LFE1-Ltext0
+ .long L$set$25
.word 0x2
.byte 0x75
.byte 0x8
.long 0x0
.long 0x0
.section __DWARF,__debug_info,regular,debug
- .long 0x134
+ .long 0x132
.word 0x2
- .set L$set$29,Ldebug_abbrev0-Lsection__debug_abbrev
- .long L$set$29
+ .set L$set$26,Ldebug_abbrev0-Lsection__debug_abbrev
+ .long L$set$26
.byte 0x4
.byte 0x1
.ascii "GNU C 4.5.0 20091110 (experimental) [trunk revision 154075p3]\0"
@@ -275,8 +234,8 @@
.ascii "/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug\0"
.long Ltext0
.long Letext0
- .set L$set$30,Ldebug_line0-Lsection__debug_line
- .long L$set$30
+ .set L$set$27,Ldebug_line0-Lsection__debug_line
+ .long L$set$27
.byte 0x2
.byte 0x1
.ascii "check_add_float\0"
@@ -285,59 +244,57 @@
.byte 0x1
.long LFB0
.long LFE0
- .set L$set$31,LLST0-Lsection__debug_loc
- .long L$set$31
- .long 0x100
+ .set L$set$28,LLST0-Lsection__debug_loc
+ .long L$set$28
+ .long 0xfe
.byte 0x3
.ascii "a1\0"
.byte 0x1
.byte 0x6
- .long 0x100
- .byte 0x2
- .byte 0x91
- .byte 0x68
+ .long 0xfe
+ .byte 0x0
.byte 0x3
.ascii "a2\0"
.byte 0x1
.byte 0x7
- .long 0x111
+ .long 0x10f
.byte 0x2
- .byte 0x91
- .byte 0x60
+ .byte 0x75
+ .byte 0x70
.byte 0x3
.ascii "b2\0"
.byte 0x1
.byte 0x7
- .long 0x111
+ .long 0x10f
.byte 0x2
- .byte 0x91
- .byte 0x58
+ .byte 0x75
+ .byte 0x68
.byte 0x3
.ascii "c2\0"
.byte 0x1
.byte 0x7
- .long 0x111
+ .long 0x10f
.byte 0x2
- .byte 0x91
- .byte 0x50
+ .byte 0x75
+ .byte 0x60
.byte 0x0
.byte 0x4
.byte 0x8
.byte 0x3
.ascii "complex float\0"
.byte 0x5
- .long 0x100
+ .long 0xfe
.byte 0x6
.byte 0x1
.ascii "main\0"
.byte 0x1
.byte 0xf
.byte 0x1
- .long 0x130
+ .long 0x12e
.long LFB1
.long LFE1
- .set L$set$32,LLST1-Lsection__debug_loc
- .long L$set$32
+ .set L$set$29,LLST1-Lsection__debug_loc
+ .long L$set$29
.byte 0x4
.byte 0x4
.byte 0x5
@@ -446,35 +403,35 @@
.section __DWARF,__debug_pubnames,regular,debug
.long 0x2b
.word 0x2
- .set L$set$33,Ldebug_info0-Lsection__debug_info
- .long L$set$33
- .long 0x138
+ .set L$set$30,Ldebug_info0-Lsection__debug_info
+ .long L$set$30
+ .long 0x136
.long 0xa6
.ascii "check_add_float\0"
- .long 0x116
+ .long 0x114
.ascii "main\0"
.long 0x0
.section __DWARF,__debug_aranges,regular,debug
.long 0x1c
.word 0x2
- .set L$set$34,Ldebug_info0-Lsection__debug_info
- .long L$set$34
+ .set L$set$31,Ldebug_info0-Lsection__debug_info
+ .long L$set$31
.byte 0x4
.byte 0x0
.word 0x0
.word 0x0
.long Ltext0
- .set L$set$35,Letext0-Ltext0
- .long L$set$35
+ .set L$set$32,Letext0-Ltext0
+ .long L$set$32
.long 0x0
.long 0x0
.section __DWARF,__debug_line,regular,debug
- .set L$set$36,LELT0-LSLT0
- .long L$set$36
+ .set L$set$33,LELT0-LSLT0
+ .long L$set$33
LSLT0:
.word 0x2
- .set L$set$37,LELTP0-LASLTP0
- .long L$set$37
+ .set L$set$34,LELTP0-LASLTP0
+ .long L$set$34
LASLTP0:
.byte 0x1
.byte 0x1
@@ -506,7 +463,7 @@
.byte 0x5
.byte 0x2
.long LM2
- .byte 0x17
+ .byte 0x18
.byte 0x0
.byte 0x5
.byte 0x2
@@ -526,31 +483,16 @@
.byte 0x5
.byte 0x2
.long LM6
- .byte 0x1c
- .byte 0x0
- .byte 0x5
- .byte 0x2
- .long LM7
- .byte 0xc
- .byte 0x0
- .byte 0x5
- .byte 0x2
- .long LM8
- .byte 0x15
- .byte 0x0
- .byte 0x5
- .byte 0x2
- .long LM9
.byte 0x18
.byte 0x0
.byte 0x5
.byte 0x2
- .long LM10
+ .long LM7
.byte 0x15
.byte 0x0
.byte 0x5
.byte 0x2
- .long LM11
+ .long LM8
.byte 0x15
.byte 0x0
.byte 0x5
@@ -577,8 +519,8 @@
.long L_exit$stub_binder
.subsections_via_symbols
.section __TEXT,__textcoal_nt,coalesced,pure_instructions
- .weak_definition ___i686.get_pc_thunk.bx
- .private_extern ___i686.get_pc_thunk.bx
-___i686.get_pc_thunk.bx:
- movl (%esp), ëx
+ .weak_definition ___i686.get_pc_thunk.cx
+ .private_extern ___i686.get_pc_thunk.cx
+___i686.get_pc_thunk.cx:
+ movl (%esp), ìx
ret
Any ideas?
Jack
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden