debug: Make sure to output .file 0 when generating DWARF5.
authorMark Wielaard <mark@klomp.org>
Tue, 6 Oct 2020 15:41:19 +0000 (17:41 +0200)
committerMark Wielaard <mark@klomp.org>
Thu, 8 Oct 2020 15:17:00 +0000 (17:17 +0200)
commit3a9e6ee42acf1e3d00e4391ab1b1a56bb0b32ad2
tree991e9c0e4571b7cd7048c5ad6c19b378d6a876bf
parentbaf4750feaa6a5fa502ae7bc0b90f31640af6f47
debug: Make sure to output .file 0 when generating DWARF5.

When gas outputs DWARF5 .debug_line[_str] then we have to tell it the
comp_dir and main file name for the zero entry line table. Otherwise
gas has to guess at the CU compilation directory and file.

Before a gcc -gdwarf-5 ../src/hello.c line table looked like:

Directory table:
 0     ../src (24)
 1     ../src (24)
 2     /usr/include (31)

File name table:
 0     hello.c (16),  0
 1     hello.c (16),  1
 2     stdio.h (44),  2

With this patch it looks like:

Directory table:
 0     /tmp/obj (0)
 1     ../src (24)
 2     /usr/include (31)

File name table:
 0     ../src/hello.c (9),  0
 1     hello.c (16),  1
 2     stdio.h (44),  2

gcc/ChangeLog:

* dwarf2out.c (dwarf2out_finish): Emit .file 0 entry when
generating DWARF5 .debug_line table through gas.
gcc/dwarf2out.c