Hi, Marin Cermak has found various testcases (or one of them) of GDB FAIL on ppc64. https://sourceware.org/bugzilla/show_bug.cgi?id=20328 # powerpc64-unknown-linux-gnu: # FAIL: gdb.dwarf2/dw2-bad-mips-linkage-name.exp: ptype f # FAIL: gdb.dwarf2/dw2-bad-mips-linkage-name.exp: ptype g # FAIL: gdb.dwarf2/dw2-lexical-block-bare.exp: p testvar # FAIL: gdb.dwarf2/atomic-type.exp: ptype f # # but: # powerpc64le-unknown-linux-gnu does PASS them (ppc64le does not use function # descriptors anymore) I do not see how to really fix it, DWARF needs to contain PC addresses, not function descriptor addresses. But .o contains only the function descriptor address. The DWARF as produced by Tcl Dwarf::assemble: <1><27>: Abbrev Number: 4 (DW_TAG_subprogram) <28> DW_AT_name : main <2d> DW_AT_external : 1 <2e> DW_AT_low_pc : 0x1001ff98 <36> DW_AT_high_pc : 0x1002ff98 <2><3e>: Abbrev Number: 5 (DW_TAG_lexical_block) Runtime info: $2 = {} 0x10000674 <.main> $3 = {void ()} 0x1001ff98
I haven't tried to use for DW_AT_low_pc (normally using DW_FORM_addr) to use DW_FORM_block* with DW_OP_deref as IIRC that is unsupported by GDB's dwarf2read.c et al.; if anyone thinks it could work I can try that. Also I am not sure whether "powerpc64-*linux*" really catches all and only all function descriptor platforms. OK for check-in? Jan