aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.6/include
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.6/include')
-rw-r--r--gcc-4.6/include/ChangeLog16
-rw-r--r--gcc-4.6/include/ChangeLog.google-4_635
-rw-r--r--gcc-4.6/include/demangle.h4
-rw-r--r--gcc-4.6/include/dwarf2.h13
-rw-r--r--gcc-4.6/include/plugin-api.h87
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;
};