• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
dsymutil vs current FSF gcc VTA merge
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

  • Prev by Date: Re: C++ std::string tries to free() a not allocated pointer ?
  • Next by Date: Re: C++ std::string tries to free() a not allocated pointer ?
  • Previous by thread: Export Instruments instrument?
  • Next by thread: Argument List Too Long?
  • Index(es):
    • Date
    • Thread