diff options
Diffstat (limited to 'gcc-4.6/include')
-rw-r--r-- | gcc-4.6/include/ChangeLog | 16 | ||||
-rw-r--r-- | gcc-4.6/include/ChangeLog.google-4_6 | 35 | ||||
-rw-r--r-- | gcc-4.6/include/demangle.h | 4 | ||||
-rw-r--r-- | gcc-4.6/include/dwarf2.h | 13 | ||||
-rw-r--r-- | gcc-4.6/include/plugin-api.h | 87 |
5 files changed, 152 insertions, 3 deletions
diff --git a/gcc-4.6/include/ChangeLog b/gcc-4.6/include/ChangeLog index 33b3bd05e..2031c706a 100644 --- a/gcc-4.6/include/ChangeLog +++ b/gcc-4.6/include/ChangeLog @@ -1,3 +1,19 @@ +2012-01-26 Cary Coutant <ccoutant@google.com> + + * include/dwarf2.h (enum dwarf_form): Update Fission extensions, add + wiki reference. + (enum dwarf_attribute): Likewise. + +2011-10-26 Release Manager + + * GCC 4.6.2 released. + +2011-09-23 Cary Coutant <ccoutant@google.com> + + PR 40831 + * demangle.h (enum demangle_component_type): Add + DEMANGLE_COMPONENT_CLONE. + 2011-06-27 Release Manager * GCC 4.6.1 released. diff --git a/gcc-4.6/include/ChangeLog.google-4_6 b/gcc-4.6/include/ChangeLog.google-4_6 new file mode 100644 index 000000000..18d0cf617 --- /dev/null +++ b/gcc-4.6/include/ChangeLog.google-4_6 @@ -0,0 +1,35 @@ +2011-12-19 Sterling Augustine <saugustine@google.com> + + Backport from google/main + + * dwarf2.h (enum dwarf_form): Add DW_FORM_GNU_ref_index, + DW_FORM_GNU_addr_index and DW_FORM_GNU_str_index. + (enum dwarf_attribute): Add DW_AT_GNU_dwo_name, DW_AT_GNU_dwo_id, + DW_AT_GNU_ref_base, DW_AT_GNU_addr_base, DW_AT_GNU_pubnames and + DW_AT_GNU_pubtypes. + +2011-09-27 Sriraman Tallam <tmsriram@google.com> + + * plugin-api.h + (ld_plugin_section): New struct. + (ld_plugin_get_section_count): New typedef. + (ld_plugin_get_section_type): New typedef. + (ld_plugin_get_section_name): New typedef. + (ld_plugin_get_section_contents): New typedef. + (ld_plugin_update_section_order): New typedef. + (ld_plugin_allow_section_ordering): New typedef. + (ld_plugin_get_view): New typedef. + (LDPT_GET_SECTION_COUNT): New enum value. + (LDPT_GET_SECTION_TYPE): New enum value. + (LDPT_GET_SECTION_NAME): New enum value. + (LDPT_GET_SECTION_CONTENTS): New enum value. + (LDPT_UPDATE_SECTION_ORDER): New enum value. + (LDPT_ALLOW_SECTION_ORDERING): New enum value. + (LDPT_GET_VIEW): New enum value. + (tv_get_section_count): New struct member. + (tv_get_section_type): New struct member. + (tv_get_section_name): New struct member. + (tv_get_section_contents): New struct member. + (tv_update_section_order): New struct member. + (tv_allow_section_ordering): New struct member. + (tv_get_view): New struct member. diff --git a/gcc-4.6/include/demangle.h b/gcc-4.6/include/demangle.h index c0624559e..ae11f1804 100644 --- a/gcc-4.6/include/demangle.h +++ b/gcc-4.6/include/demangle.h @@ -396,7 +396,9 @@ enum demangle_component_type /* An unnamed type. */ DEMANGLE_COMPONENT_UNNAMED_TYPE, /* A pack expansion. */ - DEMANGLE_COMPONENT_PACK_EXPANSION + DEMANGLE_COMPONENT_PACK_EXPANSION, + /* A cloned function. */ + DEMANGLE_COMPONENT_CLONE }; /* Types which are only used internally. */ diff --git a/gcc-4.6/include/dwarf2.h b/gcc-4.6/include/dwarf2.h index 7d3f5e49f..121b896fa 100644 --- a/gcc-4.6/include/dwarf2.h +++ b/gcc-4.6/include/dwarf2.h @@ -182,8 +182,12 @@ enum dwarf_form DW_FORM_sec_offset = 0x17, DW_FORM_exprloc = 0x18, DW_FORM_flag_present = 0x19, - DW_FORM_ref_sig8 = 0x20 + DW_FORM_ref_sig8 = 0x20, #define DW_FORM_sig8 DW_FORM_ref_sig8 /* Note: The use of DW_FORM_sig8 is deprecated. */ + /* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ + DW_FORM_GNU_ref_index = 0x1f00, + DW_FORM_GNU_addr_index = 0x1f01, + DW_FORM_GNU_str_index = 0x1f02 }; /* Attribute names and codes. */ @@ -351,6 +355,13 @@ enum dwarf_attribute /* Template template argument name. See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */ DW_AT_GNU_template_name = 0x2110, + /* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ + DW_AT_GNU_dwo_name = 0x2130, + DW_AT_GNU_dwo_id = 0x2131, + DW_AT_GNU_ref_base = 0x2132, + DW_AT_GNU_addr_base = 0x2133, + DW_AT_GNU_pubnames = 0x2134, + DW_AT_GNU_pubtypes = 0x2135, /* VMS extensions. */ DW_AT_VMS_rtnbeg_pd_address = 0x2201, /* GNAT extensions. */ diff --git a/gcc-4.6/include/plugin-api.h b/gcc-4.6/include/plugin-api.h index 956df001a..df0039372 100644 --- a/gcc-4.6/include/plugin-api.h +++ b/gcc-4.6/include/plugin-api.h @@ -93,6 +93,14 @@ struct ld_plugin_symbol int resolution; }; +/* An object's section. */ + +struct ld_plugin_section +{ + const void* handle; + unsigned int shndx; +}; + /* Whether the symbol is a definition, reference, or common, weak or not. */ enum ld_plugin_symbol_kind @@ -203,6 +211,10 @@ enum ld_plugin_status (*ld_plugin_get_input_file) (const void *handle, struct ld_plugin_input_file *file); +typedef +enum ld_plugin_status +(*ld_plugin_get_view) (const void *handle, const void **viewp); + /* The linker's interface for releasing the input file. */ typedef @@ -240,6 +252,65 @@ typedef enum ld_plugin_status (*ld_plugin_message) (int level, const char *format, ...); +/* The linker's interface for retrieving the number of sections in an object. + The handle is obtained in the claim_file handler. This interface should + only be invoked in the claim_file handler. This function sets *COUNT to + the number of sections in the object. */ + +typedef +enum ld_plugin_status +(*ld_plugin_get_input_section_count) (const void* handle, unsigned int *count); + +/* The linker's interface for retrieving the section type of a specific + section in an object. This interface should only be invoked in the + claim_file handler. This function sets *TYPE to an ELF SHT_xxx value. */ + +typedef +enum ld_plugin_status +(*ld_plugin_get_input_section_type) (const struct ld_plugin_section section, + unsigned int *type); + +/* The linker's interface for retrieving the name of a specific section in + an object. This interface should only be invoked in the claim_file handler. + This function sets *SECTION_NAME_PTR to a null-terminated buffer allocated + by malloc. The plugin must free *SECTION_NAME_PTR. */ + +typedef +enum ld_plugin_status +(*ld_plugin_get_input_section_name) (const struct ld_plugin_section section, + char **section_name_ptr); + +/* The linker's interface for retrieving the contents of a specific section + in an object. This interface should only be invoked in the claim_file + handler. This function sets *SECTION_CONTENTS to point to a buffer that is + valid until clam_file handler returns. It sets *LEN to the size of the + buffer. */ + +typedef +enum ld_plugin_status +(*ld_plugin_get_input_section_contents) (const struct ld_plugin_section section, + const unsigned char **section_contents, + size_t* len); + +/* The linker's interface for specifying the desired order of sections. + The sections should be specifed using the array SECTION_LIST in the + order in which they should appear in the final layout. NUM_SECTIONS + specifies the number of entries in each array. This should be invoked + in the all_symbols_read handler. */ + +typedef +enum ld_plugin_status +(*ld_plugin_update_section_order) (const struct ld_plugin_section *section_list, + unsigned int num_sections); + +/* The linker's interface for specifying that reordering of sections is + desired so that the linker can prepare for it. This should be invoked + before update_section_order, preferably in the claim_file handler. */ + +typedef +enum ld_plugin_status +(*ld_plugin_allow_section_ordering) (void); + enum ld_plugin_level { LDPL_INFO, @@ -269,7 +340,14 @@ enum ld_plugin_tag LDPT_ADD_INPUT_LIBRARY, LDPT_OUTPUT_NAME, LDPT_SET_EXTRA_LIBRARY_PATH, - LDPT_GNU_LD_VERSION + LDPT_GNU_LD_VERSION, + LDPT_GET_VIEW, + LDPT_GET_INPUT_SECTION_COUNT, + LDPT_GET_INPUT_SECTION_TYPE, + LDPT_GET_INPUT_SECTION_NAME, + LDPT_GET_INPUT_SECTION_CONTENTS, + LDPT_UPDATE_SECTION_ORDER, + LDPT_ALLOW_SECTION_ORDERING }; /* The plugin transfer vector. */ @@ -289,9 +367,16 @@ struct ld_plugin_tv ld_plugin_add_input_file tv_add_input_file; ld_plugin_message tv_message; ld_plugin_get_input_file tv_get_input_file; + ld_plugin_get_view tv_get_view; ld_plugin_release_input_file tv_release_input_file; ld_plugin_add_input_library tv_add_input_library; ld_plugin_set_extra_library_path tv_set_extra_library_path; + ld_plugin_get_input_section_count tv_get_input_section_count; + ld_plugin_get_input_section_type tv_get_input_section_type; + ld_plugin_get_input_section_name tv_get_input_section_name; + ld_plugin_get_input_section_contents tv_get_input_section_contents; + ld_plugin_update_section_order tv_update_section_order; + ld_plugin_allow_section_ordering tv_allow_section_ordering; } tv_u; }; |