Re: [PATCH] Add some new DW_IDX_* constants

2023-12-10 Thread Tom Tromey
> "Jakub" == Jakub Jelinek  writes:

Jakub> LGTM for GCC (but it needs a ChangeLog entry).

Oops, yeah -- I am out of the habit of writing those.
I'll add one before I push this.

Tom


Re: [PATCH] Add some new DW_IDX_* constants

2023-12-10 Thread Jakub Jelinek
On Sat, Dec 09, 2023 at 01:56:53PM -0700, Tom Tromey wrote:
> I've reimplemented the .debug_names code in GDB -- it was quite far
> from being correct, and the new implementation is much closer to what
> is specified by DWARF.
> 
> However, the new writer in GDB needs to emit some symbol properties,
> so that the reader can be fully functional.  This patch adds a few new
> DW_IDX_* constants, and tries to document the existing extensions as
> well.  (My patch series add more documentation of these to the GDB
> manual as well.)

LGTM for GCC (but it needs a ChangeLog entry).

> diff --git a/include/dwarf2.def b/include/dwarf2.def
> index 7ab3ee611fd4..75b75d901884 100644
> --- a/include/dwarf2.def
> +++ b/include/dwarf2.def
> @@ -802,8 +802,17 @@ DW_IDX (DW_IDX_parent, 4)
>  DW_IDX (DW_IDX_type_hash, 5)
>  DW_IDX_DUP (DW_IDX_lo_user, 0x2000)
>  DW_IDX (DW_IDX_hi_user, 0x3fff)
> +/* Internal linkage.  A flag.  */
>  DW_IDX (DW_IDX_GNU_internal, 0x2000)
> +/* External linkage.  A flag.  Note that gdb no longer generates this;
> +   the default is to assume external linkage.  */
>  DW_IDX (DW_IDX_GNU_external, 0x2001)
> +/* This entry is the program's entry point.  A flag.  */
> +DW_IDX (DW_IDX_GNU_main, 0x2002)
> +/* Language for this entry.  A DW_LANG_* value.  */
> +DW_IDX (DW_IDX_GNU_language, 0x2003)
> +/* This entry is a linkage name.  A flag.  */
> +DW_IDX (DW_IDX_GNU_linkage_name, 0x2004)
>  DW_END_IDX
>  
>  /* DWARF5 Unit type header encodings  */
> -- 
> 2.43.0

Jakub



[PATCH] Add some new DW_IDX_* constants

2023-12-09 Thread Tom Tromey
I've reimplemented the .debug_names code in GDB -- it was quite far
from being correct, and the new implementation is much closer to what
is specified by DWARF.

However, the new writer in GDB needs to emit some symbol properties,
so that the reader can be fully functional.  This patch adds a few new
DW_IDX_* constants, and tries to document the existing extensions as
well.  (My patch series add more documentation of these to the GDB
manual as well.)
---
 include/dwarf2.def | 9 +
 1 file changed, 9 insertions(+)

diff --git a/include/dwarf2.def b/include/dwarf2.def
index 7ab3ee611fd4..75b75d901884 100644
--- a/include/dwarf2.def
+++ b/include/dwarf2.def
@@ -802,8 +802,17 @@ DW_IDX (DW_IDX_parent, 4)
 DW_IDX (DW_IDX_type_hash, 5)
 DW_IDX_DUP (DW_IDX_lo_user, 0x2000)
 DW_IDX (DW_IDX_hi_user, 0x3fff)
+/* Internal linkage.  A flag.  */
 DW_IDX (DW_IDX_GNU_internal, 0x2000)
+/* External linkage.  A flag.  Note that gdb no longer generates this;
+   the default is to assume external linkage.  */
 DW_IDX (DW_IDX_GNU_external, 0x2001)
+/* This entry is the program's entry point.  A flag.  */
+DW_IDX (DW_IDX_GNU_main, 0x2002)
+/* Language for this entry.  A DW_LANG_* value.  */
+DW_IDX (DW_IDX_GNU_language, 0x2003)
+/* This entry is a linkage name.  A flag.  */
+DW_IDX (DW_IDX_GNU_linkage_name, 0x2004)
 DW_END_IDX
 
 /* DWARF5 Unit type header encodings  */
-- 
2.43.0