------- Comment #52 from dominiq at lps dot ens dot fr 2008-01-22 23:25 ------- > You mean does not, right?
Yes indeed! sorry for skipping the negation. The assembly follows. Comparing it to the assembly for wo_prof_mult_field_peeling_db.c in comment #35, the striking difference is that the latter (working) call L_malloc$stub, while the former call _malloc. I have very little knowledge about the $stub and friends suffices, but if I remember correctly what I have read, the Darwin libraries have both symbols, but one should use the "decorated" one(s). Also the stuff following ".picsymbol_stub" in the working assembly is missing in the non working assembly. .text .align 4,0x90 .globl _main _main: LFB5: pushq %rbp LCFI0: movl $1600, %edi movq %rsp, %rbp LCFI1: call _malloc movl $400, %edi call _malloc movl $400, %edi call _malloc movl $400, %edi call _malloc movl $400, %edi call _malloc xorl %edx, %edx cltq .align 4,0x90 L2: movl $5, (%rax,%rdx,4) addq $1, %rdx cmpq $100, %rdx jne L2 xorb %dl, %dl jmp L4 .align 4,0x90 L3: addq $1, %rdx cmpq $100, %rdx je L9 L4: cmpl $5, (%rax,%rdx,4) je L3 call _abort L9: xorl %eax, %eax leave ret LFE5: .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support EH_frame1: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 LSCIE1: .long 0x0 .byte 0x1 .ascii "zR\0" .byte 0x1 .byte 0x78 .byte 0x10 .byte 0x1 .byte 0x10 .byte 0xc .byte 0x7 .byte 0x8 .byte 0x90 .byte 0x1 .align 3 LECIE1: .globl _main.eh _main.eh: LSFDE1: .set L$set$1,LEFDE1-LASFDE1 .long L$set$1 LASFDE1: .long LASFDE1-EH_frame1 .quad LFB5-. .set L$set$2,LFE5-LFB5 .quad L$set$2 .byte 0x0 .byte 0x4 .set L$set$3,LCFI0-LFB5 .long L$set$3 .byte 0xe .byte 0x10 .byte 0x86 .byte 0x2 .byte 0x4 .set L$set$4,LCFI1-LCFI0 .long L$set$4 .byte 0xd .byte 0x6 .align 3 LEFDE1: .subsections_via_symbols -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34483