debug/7310: "inline" with "-g -gdwarf -O" for PowerPC fails to be linked

fshvaige@cisco.com fshvaige@cisco.com
Mon Jul 15 04:57:00 GMT 2002


>Number:         7310
>Category:       debug
>Synopsis:       "inline" with "-g -gdwarf -O" for PowerPC fails to be linked
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Mon Jul 15 04:46:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Felix Shvaiger
>Release:        3.1.1 20020617 (prerelease)
>Organization:
>Environment:
Configured with: ../gcc-20020617/configure --with-newlib --enable-target-optspace --target=ppc-eabi --prefix=/home/crossGCC/ppc-eabi --with-local-prefix=/home/crossGCC/ppc-eabi --program-prefix=ppc-eabi- --enable-languages=c,c++ -v
>Description:
File test6.c:
inline extern
int fff () {
    return 0;
}
int main (void) {
    return fff ();
}

When compiled with options "-g -gdwarf -O" produces link error:
test6.o(.debug+0xa2): undefined reference to `.L_E327'

Notes:
Compiled OK with -gdwarf-2
Compiled OK with -Os
Compiled OK with -O2
Compiled OK without "inline extern"
>How-To-Repeat:
Command line:
ppc-eabi-gcc test6.c -msim -O -g -gdwarf
ppc-eabi-gcc test6.c -msim -O -g -gdwarf+
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="test6.s"
Content-Disposition: inline; filename="test6.s"

	.file	"test6.c"

	.section	.text
.L_text_b:
	.previous

	.section	.data
.L_data_b:
	.previous

	.section	.rodata
.L_rodata_b:
	.previous

	.section	.bss
.L_bss_b:
	.previous

	.section	.line
.L_line_b:
	.4byte	.L_line_e-.L_line_b
	.4byte	.L_text_b
	.previous

	.section	.debug_pubnames
	.4byte	.L_debug_b
	.previous

	.section	.debug_aranges
	.4byte	.L_debug_aranges_end-.L_debug_aranges_begin
.L_debug_aranges_begin:
	.byte	0x1
	.4byte	.L_debug_b
	.previous

	.section	.debug
.L_debug_b:
.L_D1:
	.4byte	.L_D1_e-.L_D1
	.2byte	0x11
	.2byte	0x12
	.4byte	.L_D2
	.2byte	0x38
	.string	"test6.c"
	.2byte	0x258
	.string	"GNU C 3.1.1 20020617 (prerelease)"
	.2byte	0x136
	.4byte	0x1
	.2byte	0x111
	.4byte	.L_text_b
	.2byte	0x121
	.4byte	.L_text_e
	.2byte	0x106
	.4byte	.L_line_b
	.2byte	0x1b8
	.string	"/home/felix/tmp/ppc_tests"
.L_D1_e:
	.previous

	.globl __eabi
	.section	".text"
	.align 2
	.globl main
	.type	main,@function
main:
.L_LC1:

	.section	.line
	.4byte	0x5
	.2byte	0xffff
	.4byte	.L_LC1-.L_text_b
	.previous
	stwu 1,-8(1)
	mflr 0
	stw 0,12(1)
	bl __eabi
.L_LC2:

	.section	.line
	.4byte	0x2
	.2byte	0xffff
	.4byte	.L_LC2-.L_text_b
	.previous
.L_B2:
.L_LC3:

	.section	.line
	.4byte	0x3
	.2byte	0xffff
	.4byte	.L_LC3-.L_text_b
	.previous
.L_B2_e:
.L_LC4:

	.section	.line
	.4byte	0x2
	.2byte	0xffff
	.4byte	.L_LC4-.L_text_b
	.previous
.L_LC5:

	.section	.line
	.4byte	0x7
	.2byte	0xffff
	.4byte	.L_LC5-.L_text_b
	.previous
	li 3,0
	lwz 0,12(1)
	mtlr 0
	addi 1,1,8
	blr
.L_f1_e:
.Lfe1:
	.size	main,.Lfe1-main

	.section	.debug_pubnames
	.4byte	.L_P0
	.string	"main"
	.previous

	.section	.debug
.L_P0:
.L_D3:
	.4byte	.L_D3_e-.L_D3
	.2byte	0x6
	.2byte	0x12
	.4byte	.L_D4
	.2byte	0x38
	.string	"main"
	.2byte	0x278
	.string	""
	.2byte	0x55
	.2byte	0x7
	.2byte	0x111
	.4byte	main
	.2byte	0x121
	.4byte	.L_f1_e
.L_D3_e:
.L_D5:
	.4byte	.L_D5_e-.L_D5
	.2byte	0x1d
	.2byte	0x12
	.4byte	.L_D6
	.2byte	0x2b2
	.4byte	.L_E327
	.2byte	0x111
	.4byte	.L_B2
	.2byte	0x121
	.4byte	.L_B2_e
.L_D5_e:
.L_D7:
	.4byte	0x4
.L_D6:
	.4byte	0x4
	.previous

	.section	.debug
.L_D4:
	.4byte	.L_D4_e-.L_D4
	.2byte	0x13
	.2byte	0x12
	.4byte	.L_D8
	.set	.L_T43,.L_D4
	.2byte	0x38
	.string	"__va_list_tag"
	.2byte	0xb6
	.4byte	0xc
.L_D4_e:
.L_D9:
	.4byte	.L_D9_e-.L_D9
	.2byte	0xd
	.2byte	0x12
	.4byte	.L_D10
	.2byte	0x38
	.string	"gpr"
	.2byte	0x142
	.4byte	.L_T43
	.2byte	0x55
	.2byte	0x3
	.2byte	0x23
	.2byte	.L_l9_e-.L_l9
.L_l9:
	.byte	0x4
	.4byte	0x0
	.byte	0x7
.L_l9_e:
.L_D9_e:
.L_D10:
	.4byte	.L_D10_e-.L_D10
	.2byte	0xd
	.2byte	0x12
	.4byte	.L_D11
	.2byte	0x38
	.string	"fpr"
	.2byte	0x142
	.4byte	.L_T43
	.2byte	0x55
	.2byte	0x3
	.2byte	0x23
	.2byte	.L_l10_e-.L_l10
.L_l10:
	.byte	0x4
	.4byte	0x1
	.byte	0x7
.L_l10_e:
.L_D10_e:
.L_D11:
	.4byte	.L_D11_e-.L_D11
	.2byte	0xd
	.2byte	0x12
	.4byte	.L_D12
	.2byte	0x38
	.string	"overflow_arg_area"
	.2byte	0x142
	.4byte	.L_T43
	.2byte	0x63
	.2byte	.L_t11_e-.L_t11
.L_t11:
	.byte	0x1
	.2byte	0x14
.L_t11_e:
	.2byte	0x23
	.2byte	.L_l11_e-.L_l11
.L_l11:
	.byte	0x4
	.4byte	0x4
	.byte	0x7
.L_l11_e:
.L_D11_e:
.L_D12:
	.4byte	.L_D12_e-.L_D12
	.2byte	0xd
	.2byte	0x12
	.4byte	.L_D13
	.2byte	0x38
	.string	"reg_save_area"
	.2byte	0x142
	.4byte	.L_T43
	.2byte	0x63
	.2byte	.L_t12_e-.L_t12
.L_t12:
	.byte	0x1
	.2byte	0x14
.L_t12_e:
	.2byte	0x23
	.2byte	.L_l12_e-.L_l12
.L_l12:
	.byte	0x4
	.4byte	0x8
	.byte	0x7
.L_l12_e:
.L_D12_e:
.L_D13:
	.4byte	0x4
.L_D8:
	.4byte	.L_D8_e-.L_D8
	.2byte	0x1
	.2byte	0x12
	.4byte	.L_D14
	.set	.L_T46,.L_D8
	.2byte	0xa3
	.2byte	.L_s8_e-.L_s8
.L_s8:
	.byte	0x0
	.2byte	0x7
	.4byte	0x0
	.4byte	0x0
	.byte	0x8
	.2byte	0x72
	.4byte	.L_T43
.L_s8_e:
.L_D8_e:
.L_D14:
	.4byte	.L_D14_e-.L_D14
	.2byte	0x16
	.2byte	0x12
	.4byte	.L_D15
	.2byte	0x38
	.string	"__builtin_va_list"
	.2byte	0x72
	.4byte	.L_T46
.L_D14_e:
	.previous

	.section	.debug

.L_D15:
	.4byte	.L_D15_e-.L_D15
	.align 2
.L_D15_e:
.L_D2:
	.previous

	.section	.text
.L_text_e:
	.previous

	.section	.data
.L_data_e:
	.previous

	.section	.rodata
.L_rodata_e:
	.previous

	.section	.bss
.L_bss_e:
	.previous

	.section	.line
.L_line_last:
	.4byte	0x0
	.2byte	0xffff
	.4byte	.L_text_e-.L_text_b
.L_line_e:
	.previous

	.section	.debug_pubnames
	.4byte	0x0
	.string	""
	.previous

	.section	.debug_aranges
	.4byte	.L_text_b
	.4byte	.L_text_e-.L_text_b
	.4byte	.L_data_b
	.4byte	.L_data_e-.L_data_b
	.4byte	.L_rodata_b
	.4byte	.L_rodata_e-.L_rodata_b
	.4byte	.L_bss_b
	.4byte	.L_bss_e-.L_bss_b
	.4byte	0x0
	.4byte	0x0
.L_debug_aranges_end:
	.previous
	.ident	"GCC: (GNU) 3.1.1 20020617 (prerelease)"



More information about the Gcc-bugs mailing list