diff mbox

DW_AT_APPLE_* DWARF extensions.

Message ID 20141113093527.GI3565@embecosm.com
State New
Headers show

Commit Message

Andrew Burgess Nov. 13, 2014, 9:35 a.m. UTC
Some time ago there was an attempt to add the DWARF DW_AT_APPLE_*
extensions to the file include/dwarf2.def.

The original patch email is here:
  https://sourceware.org/ml/binutils/2012-09/msg00282.html
the "patch committed" mail is here:
  https://sourceware.org/ml/binutils/2012-10/msg00424.html
which corresponds to binutils commit:
  10fca301c7ea8362c086647ee8b4b6aa64ad3e67

However, the patch was reverted in binutils commit:
  1f3de044c6f615326d31ba878dfcd7fdeee7765f
which was an auto-merge from GCC to binutils.

Am I correct to think that the include/* files are owned by GCC, and
so the mistake here was not propagating the change to the GCC
repository?

I had a look on the mailing lists and couldn't find any mail
suggesting this code was deliberately removed, please correct me if
I'm wrong.

I'd like to propose that we try again with this patch, unless there's
any objection.  If I'm right about the ownership then we first need
the patch applied to GCC, after that I can apply it to binutils-gdb.

I've included the patch I'm proposing we apply below.

Any objections?

Thanks,
Andrew

--

include/ChangeLog:

2014-11-13  Shinichiro Hamaji  <shinichiro.hamaji@gmail.com>

	* dwarf2.h (DW_AT_APPLE_optimized, DW_AT_APPLE_flags)
	(DW_AT_APPLE_isa, DW_AT_APPLE_block)
	(DW_AT_APPLE_major_runtime_vers, DW_AT_APPLE_runtime_class)
	(DW_AT_APPLE_omit_frame_ptr, DW_AT_APPLE_property_name)
	(DW_AT_APPLE_property_getter, DW_AT_APPLE_property_setter)
	(DW_AT_APPLE_property_attribute, DW_AT_APPLE_objc_complete_type)
	(DW_AT_APPLE_property, DW_OP_GNU_entry_value): New macros.

Comments

Jakub Jelinek Nov. 13, 2014, 9:55 a.m. UTC | #1
On Thu, Nov 13, 2014 at 10:35:28AM +0100, Andrew Burgess wrote:
> Am I correct to think that the include/* files are owned by GCC, and
> so the mistake here was not propagating the change to the GCC
> repository?

Yes.

> 2014-11-13  Shinichiro Hamaji  <shinichiro.hamaji@gmail.com>
> 
> 	* dwarf2.h (DW_AT_APPLE_optimized, DW_AT_APPLE_flags)
> 	(DW_AT_APPLE_isa, DW_AT_APPLE_block)
> 	(DW_AT_APPLE_major_runtime_vers, DW_AT_APPLE_runtime_class)
> 	(DW_AT_APPLE_omit_frame_ptr, DW_AT_APPLE_property_name)
> 	(DW_AT_APPLE_property_getter, DW_AT_APPLE_property_setter)
> 	(DW_AT_APPLE_property_attribute, DW_AT_APPLE_objc_complete_type)
> 	(DW_AT_APPLE_property, DW_OP_GNU_entry_value): New macros.

You aren't adding DW_OP_GNU_entry_value, that is already there.

> diff --git a/include/dwarf2.def b/include/dwarf2.def
> index 7fe2df1..fd2d080 100644
> --- a/include/dwarf2.def
> +++ b/include/dwarf2.def
> @@ -403,6 +403,20 @@ DW_AT (DW_AT_upc_threads_scaled, 0x3210)
>  DW_AT (DW_AT_PGI_lbase, 0x3a00)
>  DW_AT (DW_AT_PGI_soffset, 0x3a01)
>  DW_AT (DW_AT_PGI_lstride, 0x3a02)
> +/* Apple extensions.  */

Perhaps a comment with a link to documentation of those would
be helpful here.

> +DW_AT (DW_AT_APPLE_optimized, 0x3fe1)
> +DW_AT (DW_AT_APPLE_flags, 0x3fe2)
> +DW_AT (DW_AT_APPLE_isa, 0x3fe3)
> +DW_AT (DW_AT_APPLE_block, 0x3fe4)
> +DW_AT (DW_AT_APPLE_major_runtime_vers, 0x3fe5)
> +DW_AT (DW_AT_APPLE_runtime_class, 0x3fe6)
> +DW_AT (DW_AT_APPLE_omit_frame_ptr, 0x3fe7)
> +DW_AT (DW_AT_APPLE_property_name, 0x3fe8)
> +DW_AT (DW_AT_APPLE_property_getter, 0x3fe9)
> +DW_AT (DW_AT_APPLE_property_setter, 0x3fea)
> +DW_AT (DW_AT_APPLE_property_attribute, 0x3feb)
> +DW_AT (DW_AT_APPLE_objc_complete_type, 0x3fec)
> +DW_AT (DW_AT_APPLE_property, 0x3fed)
>  DW_END_AT
>  
>  DW_FIRST_OP (DW_OP_addr, 0x03)

Otherwise LGTM.

	Jakub
diff mbox

Patch

diff --git a/include/dwarf2.def b/include/dwarf2.def
index 7fe2df1..fd2d080 100644
--- a/include/dwarf2.def
+++ b/include/dwarf2.def
@@ -403,6 +403,20 @@  DW_AT (DW_AT_upc_threads_scaled, 0x3210)
 DW_AT (DW_AT_PGI_lbase, 0x3a00)
 DW_AT (DW_AT_PGI_soffset, 0x3a01)
 DW_AT (DW_AT_PGI_lstride, 0x3a02)
+/* Apple extensions.  */
+DW_AT (DW_AT_APPLE_optimized, 0x3fe1)
+DW_AT (DW_AT_APPLE_flags, 0x3fe2)
+DW_AT (DW_AT_APPLE_isa, 0x3fe3)
+DW_AT (DW_AT_APPLE_block, 0x3fe4)
+DW_AT (DW_AT_APPLE_major_runtime_vers, 0x3fe5)
+DW_AT (DW_AT_APPLE_runtime_class, 0x3fe6)
+DW_AT (DW_AT_APPLE_omit_frame_ptr, 0x3fe7)
+DW_AT (DW_AT_APPLE_property_name, 0x3fe8)
+DW_AT (DW_AT_APPLE_property_getter, 0x3fe9)
+DW_AT (DW_AT_APPLE_property_setter, 0x3fea)
+DW_AT (DW_AT_APPLE_property_attribute, 0x3feb)
+DW_AT (DW_AT_APPLE_objc_complete_type, 0x3fec)
+DW_AT (DW_AT_APPLE_property, 0x3fed)
 DW_END_AT
 
 DW_FIRST_OP (DW_OP_addr, 0x03)