On Fri, Sep 12, 2014 at 10:16:12AM +0200, Richard Biener wrote: > On Fri, Sep 12, 2014 at 7:40 AM, Jan Hubicka <hubi...@ucw.cz> wrote: > > Hi, > > I went through excercise of running LTO bootstrap with ODR verification on. > > There are some typename clashes > > I guess we want to fix. I wonder what approach is preferred, do we want to > > introduce anonymous > > namespaces for those? > > For passes you could put them into pass class scope. Anonymous > namespaces would work as well but I don't like them very much > and for this it sounds like an abuse of them.
hm, I agree debugging code in anonymous namespaces is awful, but I'm not sure I see a reason to dislike putting type definitions there. fwiw I'm planning to mostly use anon namespaces in Firefox if I get around to it someday. Trev > > Prefixing/renaming the names is possible as well, of course. > > Richard. > > > Honza > > > > ../../gcc/tlink.c:62:16: warning: type ‘struct file_hash_entry’ violates > > one definition rule [-Wodr] > > typedef struct file_hash_entry > > ^ > > ../../libcpp/files.c:143:8: note: a different type is defined in another > > translation unit > > struct file_hash_entry > > ^ > > ../../gcc/tlink.c:64:15: note: the first difference of corresponding > > definitions is field ‘key’ > > const char *key; > > ^ > > ../../libcpp/files.c:145:27: note: a field with different name is defined > > in another translation unit > > struct file_hash_entry *next; > > ^ > > ../../gcc/ipa-devirt.c:2674:0: warning: type ‘struct type_change_info’ > > violates one definition rule [-Wodr] > > struct type_change_info > > ^ > > ../../gcc/ipa-prop.c:595:0: note: a different type is defined in another > > translation unit > > struct type_change_info > > ^ > > ../../gcc/ipa-devirt.c:2681:0: note: the first difference of corresponding > > definitions is field ‘instance’ > > tree instance; > > ^ > > ../../gcc/ipa-prop.c:602:0: note: a field with different name is defined in > > another translation unit > > tree object; > > ^ > > ../../gcc/gcse.c:294:0: warning: type ‘struct occr’ violates one definition > > rule [-Wodr] > > struct occr > > ^ > > ../../gcc/postreload-gcse.c:160:0: note: a different type is defined in > > another translation unit > > struct occr > > ^ > > ../../gcc/gcse.c:297:0: note: the first difference of corresponding > > definitions is field ‘next’ > > struct occr *next; > > ^ > > ../../gcc/postreload-gcse.c:163:0: note: a field of same name but different > > type is defined in another translation unit > > struct occr *next; > > ^ > > ../../gcc/gcse.c:259:0: warning: type ‘struct expr’ violates one definition > > rule [-Wodr] > > struct expr > > ^ > > ../../gcc/postreload-gcse.c:92:0: note: a different type is defined in > > another translation unit > > struct expr > > ^ > > ../../gcc/gcse.c:264:0: note: the first difference of corresponding > > definitions is field ‘bitmap_index’ > > int bitmap_index; > > ^ > > ../../gcc/postreload-gcse.c:98:0: note: a field with different name is > > defined in another translation unit > > hashval_t hash; > > ^ > > ../../gcc/predict.c:2499:0: warning: type ‘struct block_info_def’ violates > > one definition rule [-Wodr] > > typedef struct block_info_def > > ^ > > ../../gcc/reg-stack.c:208:0: note: a different type is defined in another > > translation unit > > typedef struct block_info_def > > ^ > > ../../gcc/predict.c:2502:0: note: the first difference of corresponding > > definitions is field ‘frequency’ > > sreal frequency; > > ^ > > ../../gcc/reg-stack.c:210:0: note: a field with different name is defined > > in another translation unit > > struct stack_def stack_in; /* Input stack configuration. */ > > ^ > > ../../gcc/lra-eliminations.c:80:0: warning: type ‘struct elim_table’ > > violates one definition rule [-Wodr] > > struct elim_table > > ^ > > ../../gcc/reload1.c:264:0: note: a different type is defined in another > > translation unit > > struct elim_table > > ^ > > ../../gcc/lra-eliminations.c:88:0: note: the first difference of > > corresponding definitions is field ‘previous_offset’ > > HOST_WIDE_INT previous_offset; > > ^ > > ../../gcc/reload1.c:268:0: note: a field with different name is defined in > > another translation unit > > HOST_WIDE_INT initial_offset; /* Initial difference between values. */ > > ^ > > ../../gcc/tree-ssa-ccp.c:169:0: warning: type ‘struct prop_value_d’ > > violates one definition rule [-Wodr] > > struct prop_value_d { > > ^ > > ../../gcc/tree-ssa-copy.c:79:0: note: a different type is defined in > > another translation unit > > struct prop_value_d { > > ^ > > ../../gcc/tree-ssa-ccp.c:171:0: note: the first difference of corresponding > > definitions is field ‘lattice_val’ > > ccp_lattice_t lattice_val; > > ^ > > ../../gcc/tree-ssa-copy.c:81:0: note: a field with different name is > > defined in another translation unit > > tree value; > > ^ > > ../../gcc/profile.h:26:0: warning: type ‘struct edge_info’ violates one > > definition rule [-Wodr] > > struct edge_info > > ^ > > ../../gcc/tree-ssa-dom.c:113:0: note: a different type is defined in > > another translation unit > > struct edge_info > > ^ > > ../../gcc/profile.h:28:0: note: the first difference of corresponding > > definitions is field ‘count_valid’ > > unsigned int count_valid:1; > > ^ > > ../../gcc/tree-ssa-dom.c:117:0: note: a field with different name is > > defined in another translation unit > > tree lhs; > > ^ > > ../../gcc/tree-ssa-loop-im.c:119:0: warning: type ‘struct mem_ref’ violates > > one definition rule [-Wodr] > > typedef struct mem_ref > > ^ > > ../../gcc/tree-ssa-loop-prefetch.c:271:0: note: a different type is defined > > in another translation unit > > struct mem_ref > > ^ > > ../../gcc/tree-ssa-loop-im.c:121:0: note: the first difference of > > corresponding definitions is field ‘id’ > > unsigned id; /* ID assigned to the memory reference > > ^ > > ../../gcc/tree-ssa-loop-prefetch.c:273:0: note: a field with different name > > is defined in another translation unit > > gimple stmt; /* Statement in that the reference appears. */ > > ^ > > ../../gcc/bitmap.c:2146:8: warning: type ‘struct output_info’ violates one > > definition rule [-Wodr] > > struct output_info > > ^ > > ../../gcc/alloc-pool.c:342:0: note: a different type is defined in another > > translation unit > > struct output_info > > ^ > > ../../gcc/bitmap.c:2148:12: note: the first difference of corresponding > > definitions is field ‘size’ > > uint64_t size; > > ^ > > ../../gcc/alloc-pool.c:344:0: note: a field with different name is defined > > in another translation unit > > unsigned long total_created; > > ^ > > ../../gcc/gcse.c:320:0: warning: type ‘struct hash_table_d’ violates one > > definition rule [-Wodr] > > struct hash_table_d > > ^ > > ../../gcc/cprop.c:96:0: note: a different type is defined in another > > translation unit > > struct hash_table_d > > ^ > > ../../gcc/gcse.c:324:0: note: the first difference of corresponding > > definitions is field ‘table’ > > struct expr **table; > > ^ > > ../../gcc/cprop.c:100:0: note: a field of same name but different type is > > defined in another translation unit > > struct expr **table; > > ^ > > ../../gcc/profile.c:77:0: warning: type ‘struct bb_info’ violates one > > definition rule [-Wodr] > > struct bb_info { > > ^ > > ../../gcc/dse.c:424:0: note: a different type is defined in another > > translation unit > > struct bb_info > > ^ > > ../../gcc/profile.c:78:0: note: the first difference of corresponding > > definitions is field ‘count_valid’ > > unsigned int count_valid : 1; > > ^ > > ../../gcc/dse.c:430:0: note: a field with different name is defined in > > another translation unit > > insn_info_t last_insn; > > ^ > > ../../gcc/tree-ssa-structalias.c:1526:0: warning: type ‘struct topo_info’ > > violates one definition rule [-Wodr] > > struct topo_info > > ^ > > ../../gcc/ipa-cp.c:577:0: note: a different type is defined in another > > translation unit > > { > > ^ > > ../../gcc/tree-ssa-structalias.c:1529:0: note: the first difference of > > corresponding definitions is field ‘visited’ > > sbitmap visited; > > ^ > > ../../gcc/ipa-cp.c:577:0: note: a field with different name is defined in > > another translation unit > > { > > ^ > > ../../gcc/ggc-common.c:945:0: warning: type ‘struct ptr_hash_entry’ > > violates one definition rule [-Wodr] > > struct ptr_hash_entry > > ^ > > ../../gcc/vec.c:83:0: note: a different type is defined in another > > translation unit > > void *ptr; > > ^ > > ../../gcc/ggc-common.c:948:0: note: the first difference of corresponding > > definitions is field ‘loc’ > > struct loc_descriptor *loc; > > ^ > > ../../gcc/vec.c:83:0: note: a field of same name but different type is > > defined in another translation unit > > void *ptr; > > ^ > > ../../gcc/cp/mangle.c:93:0: warning: type ‘struct globals’ violates one > > definition rule [-Wodr] > > typedef struct GTY(()) globals { > > ^ > > ../../gcc/ggc-page.c:381:0: note: a different type is defined in another > > translation unit > > static struct globals > > ^ > > ../../gcc/cp/mangle.c:96:0: note: the first difference of corresponding > > definitions is field ‘substitutions’ > > vec<tree, va_gc> *substitutions; > > ^ > > ../../gcc/ggc-page.c:387:0: note: a field with different name is defined in > > another translation unit > > page_entry *pages[NUM_ORDERS]; > > ^ > > ../../gcc/alloc-pool.c:342:0: warning: type ‘struct output_info’ violates > > one definition rule [-Wodr] > > struct output_info > > ^ > > ../../gcc/bitmap.c:2146:0: note: a different type is defined in another > > translation unit > > struct output_info > > ^ > > ../../gcc/alloc-pool.c:344:0: note: the first difference of corresponding > > definitions is field ‘total_created’ > > unsigned long total_created; > > ^ > > ../../gcc/bitmap.c:2148:0: note: a field with different name is defined in > > another translation unit > > uint64_t size; > > ^ > > ../../gcc/ipa-devirt.c:2674:0: warning: type ‘struct type_change_info’ > > violates one definition rule [-Wodr] > > struct type_change_info > > ^ > > ../../gcc/ipa-prop.c:595:0: note: a different type is defined in another > > translation unit > > struct type_change_info > > ^ > > ../../gcc/ipa-devirt.c:2681:0: note: the first difference of corresponding > > definitions is field ‘instance’ > > tree instance; > > ^ > > ../../gcc/ipa-prop.c:602:0: note: a field with different name is defined in > > another translation unit > > tree object; > > ^ > > ../../gcc/gcse.c:294:0: warning: type ‘struct occr’ violates one definition > > rule [-Wodr] > > struct occr > > ^ > > ../../gcc/postreload-gcse.c:160:0: note: a different type is defined in > > another translation unit > > struct occr > > ^ > > ../../gcc/gcse.c:297:0: note: the first difference of corresponding > > definitions is field ‘next’ > > struct occr *next; > > ^ > > ../../gcc/postreload-gcse.c:163:0: note: a field of same name but different > > type is defined in another translation unit > > struct occr *next; > > ^ > > ../../gcc/gcse.c:259:0: warning: type ‘struct expr’ violates one definition > > rule [-Wodr] > > struct expr > > ^ > > ../../gcc/postreload-gcse.c:92:0: note: a different type is defined in > > another translation unit > > struct expr > > ^ > > ../../gcc/gcse.c:264:0: note: the first difference of corresponding > > definitions is field ‘bitmap_index’ > > int bitmap_index; > > ^ > > ../../gcc/postreload-gcse.c:98:0: note: a field with different name is > > defined in another translation unit > > hashval_t hash; > > ^ > > ../../gcc/predict.c:2499:0: warning: type ‘struct block_info_def’ violates > > one definition rule [-Wodr] > > typedef struct block_info_def > > ^ > > ../../gcc/reg-stack.c:208:0: note: a different type is defined in another > > translation unit > > typedef struct block_info_def > > ^ > > ../../gcc/predict.c:2502:0: note: the first difference of corresponding > > definitions is field ‘frequency’ > > sreal frequency; > > ^ > > ../../gcc/reg-stack.c:210:0: note: a field with different name is defined > > in another translation unit > > struct stack_def stack_in; /* Input stack configuration. */ > > ^ > > ../../gcc/lra-eliminations.c:80:0: warning: type ‘struct elim_table’ > > violates one definition rule [-Wodr] > > struct elim_table > > ^ > > ../../gcc/reload1.c:264:0: note: a different type is defined in another > > translation unit > > struct elim_table > > ^ > > ../../gcc/lra-eliminations.c:88:0: note: the first difference of > > corresponding definitions is field ‘previous_offset’ > > HOST_WIDE_INT previous_offset; > > ^ > > ../../gcc/reload1.c:268:0: note: a field with different name is defined in > > another translation unit > > HOST_WIDE_INT initial_offset; /* Initial difference between values. */ > > ^ > > ../../gcc/cp/semantics.c:4075:0: warning: type ‘struct nrv_data’ violates > > one definition rule [-Wodr] > > struct nrv_data > > ^ > > ../../gcc/tree-nrv.c:58:0: note: a different type is defined in another > > translation unit > > struct nrv_data > > ^ > > ../../gcc/cp/semantics.c:4081:0: note: the first difference of > > corresponding definitions is field ‘visited’ > > hash_table<pointer_hash <tree_node> > visited; > > ^ > > ../../gcc/tree-nrv.c:67:0: note: a field with different name is defined in > > another translation unit > > int modified; > > ^ > > ../../gcc/tree-ssa-ccp.c:169:0: warning: type ‘struct prop_value_d’ > > violates one definition rule [-Wodr] > > struct prop_value_d { > > ^ > > ../../gcc/tree-ssa-copy.c:79:0: note: a different type is defined in > > another translation unit > > struct prop_value_d { > > ^ > > ../../gcc/tree-ssa-ccp.c:171:0: note: the first difference of corresponding > > definitions is field ‘lattice_val’ > > ccp_lattice_t lattice_val; > > ^ > > ../../gcc/tree-ssa-copy.c:81:0: note: a field with different name is > > defined in another translation unit > > tree value; > > ^ > > ../../gcc/profile.h:26:0: warning: type ‘struct edge_info’ violates one > > definition rule [-Wodr] > > struct edge_info > > ^ > > ../../gcc/tree-ssa-dom.c:113:0: note: a different type is defined in > > another translation unit > > struct edge_info > > ^ > > ../../gcc/profile.h:28:0: note: the first difference of corresponding > > definitions is field ‘count_valid’ > > unsigned int count_valid:1; > > ^ > > ../../gcc/tree-ssa-dom.c:117:0: note: a field with different name is > > defined in another translation unit > > tree lhs; > > ^ > > ../../gcc/tree-ssa-loop-im.c:119:0: warning: type ‘struct mem_ref’ violates > > one definition rule [-Wodr] > > typedef struct mem_ref > > ^ > > ../../gcc/tree-ssa-loop-prefetch.c:271:0: note: a different type is defined > > in another translation unit > > struct mem_ref > > ^ > > ../../gcc/tree-ssa-loop-im.c:121:0: note: the first difference of > > corresponding definitions is field ‘id’ > > unsigned id; /* ID assigned to the memory reference > > ^ > > ../../gcc/tree-ssa-loop-prefetch.c:273:0: note: a field with different name > > is defined in another translation unit > > gimple stmt; /* Statement in that the reference appears. */ > > ^ > > ../../gcc/gcse.c:320:0: warning: type ‘struct hash_table_d’ violates one > > definition rule [-Wodr] > > struct hash_table_d > > ^ > > ../../gcc/cprop.c:58:0: note: a different type is defined in another > > translation unit > > struct occr > > ^ > > ../../gcc/gcse.c:324:0: note: the first difference of corresponding > > definitions is field ‘table’ > > struct expr **table; > > ^ > > ../../gcc/cprop.c:58:0: note: a field of same name but different type is > > defined in another translation unit > > struct occr > > ^ > > ../../gcc/profile.c:77:0: warning: type ‘struct bb_info’ violates one > > definition rule [-Wodr] > > struct bb_info { > > ^ > > ../../gcc/dse.c:1079:0: note: a different type is defined in another > > translation unit > > free_read_records (bb_info_t bb_info) > > ^ > > ../../gcc/profile.c:78:0: note: the first difference of corresponding > > definitions is field ‘count_valid’ > > unsigned int count_valid : 1; > > ^ > > ../../gcc/dse.c:1079:0: note: a field with different name is defined in > > another translation unit > > free_read_records (bb_info_t bb_info) > > ^ > > ../../gcc/tree-ssa-structalias.c:1526:0: warning: type ‘struct topo_info’ > > violates one definition rule [-Wodr] > > struct topo_info > > ^ > > ../../gcc/ipa-cp.c:577:0: note: a different type is defined in another > > translation unit > > { > > ^ > > ../../gcc/tree-ssa-structalias.c:1529:0: note: the first difference of > > corresponding definitions is field ‘visited’ > > sbitmap visited; > > ^ > > ../../gcc/ipa-cp.c:577:0: note: a field with different name is defined in > > another translation unit > > { > > ^ > > ../../gcc/ggc-common.c:945:0: warning: type ‘struct ptr_hash_entry’ > > violates one definition rule [-Wodr] > > struct ptr_hash_entry > > ^ > > ../../gcc/vec.c:83:0: note: a different type is defined in another > > translation unit > > void *ptr; > > ^ > > ../../gcc/ggc-common.c:948:0: note: the first difference of corresponding > > definitions is field ‘loc’ > > struct loc_descriptor *loc; > > ^ > > ../../gcc/vec.c:83:0: note: a field of same name but different type is > > defined in another translation unit > > void *ptr; > > ^ > > ../../gcc/cp/call.c:83:8: warning: type ‘struct conversion’ violates one > > definition rule [-Wodr] > > struct conversion { > > ^ > > ../../libcpp/charset.c:613:0: note: a different type is defined in another > > translation unit > > const char *pair; > > ^ > > ../../gcc/cp/call.c:85:19: note: the first difference of corresponding > > definitions is field ‘kind’ > > conversion_kind kind; > > ^ > > ../../libcpp/charset.c:613:0: note: a field with different name is defined > > in another translation unit > > const char *pair; > > ^ > > ../../gcc/alloc-pool.c:342:0: warning: type ‘struct output_info’ violates > > one definition rule [-Wodr] > > struct output_info > > ^ > > ../../gcc/bitmap.c:2146:0: note: a different type is defined in another > > translation unit > > struct output_info > > ^ > > ../../gcc/alloc-pool.c:344:0: note: the first difference of corresponding > > definitions is field ‘total_created’ > > unsigned long total_created; > > ^ > > ../../gcc/bitmap.c:2148:0: note: a field with different name is defined in > > another translation unit > > uint64_t size; > > ^ > > ../../gcc/ipa-devirt.c:2674:0: warning: type ‘struct type_change_info’ > > violates one definition rule [-Wodr] > > struct type_change_info > > ^ > > ../../gcc/ipa-prop.c:595:0: note: a different type is defined in another > > translation unit > > struct type_change_info > > ^ > > ../../gcc/ipa-devirt.c:2681:0: note: the first difference of corresponding > > definitions is field ‘instance’ > > tree instance; > > ^ > > ../../gcc/ipa-prop.c:602:0: note: a field with different name is defined in > > another translation unit > > tree object; > > ^ > > ../../gcc/gcse.c:294:0: warning: type ‘struct occr’ violates one definition > > rule [-Wodr] > > struct occr > > ^ > > ../../gcc/postreload-gcse.c:160:0: note: a different type is defined in > > another translation unit > > struct occr > > ^ > > ../../gcc/gcse.c:297:0: note: the first difference of corresponding > > definitions is field ‘next’ > > struct occr *next; > > ^ > > ../../gcc/postreload-gcse.c:163:0: note: a field of same name but different > > type is defined in another translation unit > > struct occr *next; > > ^ > > ../../gcc/gcse.c:259:0: warning: type ‘struct expr’ violates one definition > > rule [-Wodr] > > struct expr > > ^ > > ../../gcc/postreload-gcse.c:92:0: note: a different type is defined in > > another translation unit > > struct expr > > ^ > > ../../gcc/gcse.c:264:0: note: the first difference of corresponding > > definitions is field ‘bitmap_index’ > > int bitmap_index; > > ^ > > ../../gcc/postreload-gcse.c:98:0: note: a field with different name is > > defined in another translation unit > > hashval_t hash; > > ^ > > ../../gcc/predict.c:2499:0: warning: type ‘struct block_info_def’ violates > > one definition rule [-Wodr] > > typedef struct block_info_def > > ^ > > ../../gcc/reg-stack.c:208:0: note: a different type is defined in another > > translation unit > > typedef struct block_info_def > > ^ > > ../../gcc/predict.c:2502:0: note: the first difference of corresponding > > definitions is field ‘frequency’ > > sreal frequency; > > ^ > > ../../gcc/reg-stack.c:210:0: note: a field with different name is defined > > in another translation unit > > struct stack_def stack_in; /* Input stack configuration. */ > > ^ > > ../../gcc/lra-eliminations.c:80:0: warning: type ‘struct elim_table’ > > violates one definition rule [-Wodr] > > struct elim_table > > ^ > > ../../gcc/reload1.c:264:0: note: a different type is defined in another > > translation unit > > struct elim_table > > ^ > > ../../gcc/lra-eliminations.c:88:0: note: the first difference of > > corresponding definitions is field ‘previous_offset’ > > HOST_WIDE_INT previous_offset; > > ^ > > ../../gcc/reload1.c:268:0: note: a field with different name is defined in > > another translation unit > > HOST_WIDE_INT initial_offset; /* Initial difference between values. */ > > ^ > > ../../gcc/tree-ssa-ccp.c:169:0: warning: type ‘struct prop_value_d’ > > violates one definition rule [-Wodr] > > struct prop_value_d { > > ^ > > ../../gcc/tree-ssa-copy.c:79:0: note: a different type is defined in > > another translation unit > > struct prop_value_d { > > ^ > > ../../gcc/tree-ssa-ccp.c:171:0: note: the first difference of corresponding > > definitions is field ‘lattice_val’ > > ccp_lattice_t lattice_val; > > ^ > > ../../gcc/tree-ssa-copy.c:81:0: note: a field with different name is > > defined in another translation unit > > tree value; > > ^ > > ../../gcc/profile.h:26:0: warning: type ‘struct edge_info’ violates one > > definition rule [-Wodr] > > struct edge_info > > ^ > > ../../gcc/tree-ssa-dom.c:113:0: note: a different type is defined in > > another translation unit > > struct edge_info > > ^ > > ../../gcc/profile.h:28:0: note: the first difference of corresponding > > definitions is field ‘count_valid’ > > unsigned int count_valid:1; > > ^ > > ../../gcc/tree-ssa-dom.c:117:0: note: a field with different name is > > defined in another translation unit > > tree lhs; > > ^ > > ../../gcc/tree-ssa-loop-im.c:119:0: warning: type ‘struct mem_ref’ violates > > one definition rule [-Wodr] > > typedef struct mem_ref > > ^ > > ../../gcc/tree-ssa-loop-prefetch.c:271:0: note: a different type is defined > > in another translation unit > > struct mem_ref > > ^ > > ../../gcc/tree-ssa-loop-im.c:121:0: note: the first difference of > > corresponding definitions is field ‘id’ > > unsigned id; /* ID assigned to the memory reference > > ^ > > ../../gcc/tree-ssa-loop-prefetch.c:273:0: note: a field with different name > > is defined in another translation unit > > gimple stmt; /* Statement in that the reference appears. */ > > ^ > > ../../gcc/gcse.c:320:0: warning: type ‘struct hash_table_d’ violates one > > definition rule [-Wodr] > > struct hash_table_d > > ^ > > ../../gcc/cprop.c:58:0: note: a different type is defined in another > > translation unit > > struct occr > > ^ > > ../../gcc/gcse.c:324:0: note: the first difference of corresponding > > definitions is field ‘table’ > > struct expr **table; > > ^ > > ../../gcc/cprop.c:58:0: note: a field of same name but different type is > > defined in another translation unit > > struct occr > > ^ > > ../../gcc/profile.c:77:0: warning: type ‘struct bb_info’ violates one > > definition rule [-Wodr] > > struct bb_info { > > ^ > > ../../gcc/dse.c:1079:0: note: a different type is defined in another > > translation unit > > free_read_records (bb_info_t bb_info) > > ^ > > ../../gcc/profile.c:78:0: note: the first difference of corresponding > > definitions is field ‘count_valid’ > > unsigned int count_valid : 1; > > ^ > > ../../gcc/dse.c:1079:0: note: a field with different name is defined in > > another translation unit > > free_read_records (bb_info_t bb_info) > > ^ > > ../../gcc/tree-ssa-structalias.c:1526:0: warning: type ‘struct topo_info’ > > violates one definition rule [-Wodr] > > struct topo_info > > ^ > > ../../gcc/ipa-cp.c:577:0: note: a different type is defined in another > > translation unit > > { > > ^ > > ../../gcc/tree-ssa-structalias.c:1529:0: note: the first difference of > > corresponding definitions is field ‘visited’ > > sbitmap visited; > > ^ > > ../../gcc/ipa-cp.c:577:0: note: a field with different name is defined in > > another translation unit > > { > > ^ > > ../../gcc/ggc-common.c:945:0: warning: type ‘struct ptr_hash_entry’ > > violates one definition rule [-Wodr] > > struct ptr_hash_entry > > ^ > > ../../gcc/vec.c:83:0: note: a different type is defined in another > > translation unit > > void *ptr; > > ^ > > ../../gcc/ggc-common.c:948:0: note: the first difference of corresponding > > definitions is field ‘loc’ > > struct loc_descriptor *loc; > > ^ > > ../../gcc/vec.c:83:0: note: a field of same name but different type is > > defined in another translation unit > > void *ptr; > > ^ > > /usr/bin/ld.gold.real: warning: using 'GLIBCXX_3.4' as version for > > '_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv' which is also > > named in version 'GLIBCXX_3.4.6' in script > > /usr/bin/ld.gold.real: warning: using 'GLIBCXX_3.4' as version for > > '_ZNKSs11_M_disjunctEPKc' which is also named in version 'GLIBCXX_3.4.5' in > > script > > /usr/bin/ld.gold.real: warning: using 'GLIBCXX_3.4' as version for > > '_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw' which is also named in > > version 'GLIBCXX_3.4.5' in script > > make[2]: *** [compare] Error 1 > > make[1]: *** [stage3-bubble] Error 2 > > make: *** [all] Error 2