diff mbox

aarch64 build broken

Message ID 20140526190728.GB18792@kam.mff.cuni.cz
State New
Headers show

Commit Message

Jan Hubicka May 26, 2014, 7:07 p.m. UTC
> Hi Jan,
> 
> 
> 
> r210901 | hubicka | 2014-05-25 00:00:14 +0200 (So, 25. Mai 2014)
> 
> 
> this checkin broke the aarch64 build:
> 
> 
> 
> ./../gcc-trunk/gcc/config/aarch64/aarch64.c: In function ‘void aarch64_elf_asm_named_section(const char*, unsigned int, tree)’:
> ../../gcc-trunk/gcc/tree.h:2326:26: error: ‘decl_comdat_group’ was not declared in this scope
>    decl_comdat_group (NODE)
>                           ^
> ../../gcc-trunk/gcc/tree.h:226:15: note: in definition of macro ‘TREE_CHECK’
>  (tree_check ((T), __FILE__, __LINE__, __FUNCTION__, (CODE)))
>                ^
> ../../gcc-trunk/gcc/tree.h:925:19: note: in expansion of macro ‘IDENTIFIER_NODE_CHECK’
>    ((const char *) IDENTIFIER_NODE_CHECK (NODE)->identifier.id.str)
>                    ^
> ../../gcc-trunk/gcc/config/aarch64/aarch64.c:8136:8: note: in expansion of macro ‘IDENTIFIER_POINTER’
>         IDENTIFIER_POINTER (DECL_COMDAT_GROUP (decl)));
>         ^
> ../../gcc-trunk/gcc/config/aarch64/aarch64.c:8136:28: note: in expansion of macro ‘DECL_COMDAT_GROUP’
>         IDENTIFIER_POINTER (DECL_COMDAT_GROUP (decl)));
> 
Hi,
the problem is that decl_comdat_group used by DECL_COMDAT_GROUP macro is
defined in cgraph.h that is not inlined.  This patch moves is offline making
tree.h self contained.

Does it solve the pbootstrap problem?

Honza

Comments

Bernd Edlinger May 26, 2014, 7:29 p.m. UTC | #1
Hi Jan,


looks good.  Thanks!

Bernd

On Mon, 26 May 2014 21:07:28 +0200, Jan Hubicka wrote:
> From: hubicka@ucw.cz
> To: bernd.edlinger@hotmail.de
> CC: hubicka@ucw.cz; gcc-patches@gcc.gnu.org
> Subject: Re: aarch64 build broken
>
>> Hi Jan,
>>
>>
>>
>> r210901 | hubicka | 2014-05-25 00:00:14 +0200 (So, 25. Mai 2014)
>>
>>
>> this checkin broke the aarch64 build:
>>
>>
>>
>> ./../gcc-trunk/gcc/config/aarch64/aarch64.c: In function ‘void aarch64_elf_asm_named_section(const char*, unsigned int, tree)’:
>> ../../gcc-trunk/gcc/tree.h:2326:26: error: ‘decl_comdat_group’ was not declared in this scope
>> decl_comdat_group (NODE)
>> ^
>> ../../gcc-trunk/gcc/tree.h:226:15: note: in definition of macro ‘TREE_CHECK’
>> (tree_check ((T), __FILE__, __LINE__, __FUNCTION__, (CODE)))
>> ^
>> ../../gcc-trunk/gcc/tree.h:925:19: note: in expansion of macro ‘IDENTIFIER_NODE_CHECK’
>> ((const char *) IDENTIFIER_NODE_CHECK (NODE)->identifier.id.str)
>> ^
>> ../../gcc-trunk/gcc/config/aarch64/aarch64.c:8136:8: note: in expansion of macro ‘IDENTIFIER_POINTER’
>> IDENTIFIER_POINTER (DECL_COMDAT_GROUP (decl)));
>> ^
>> ../../gcc-trunk/gcc/config/aarch64/aarch64.c:8136:28: note: in expansion of macro ‘DECL_COMDAT_GROUP’
>> IDENTIFIER_POINTER (DECL_COMDAT_GROUP (decl)));
>>
> Hi,
> the problem is that decl_comdat_group used by DECL_COMDAT_GROUP macro is
> defined in cgraph.h that is not inlined. This patch moves is offline making
> tree.h self contained.
>
> Does it solve the pbootstrap problem?
>
> Honza
>
> Index: cgraph.h
> ===================================================================
> --- cgraph.h (revision 210908)
> +++ cgraph.h (working copy)
> @@ -1621,14 +1621,4 @@ symtab_in_same_comdat_p (symtab_node *on
>
> return one->get_comdat_group () == two->get_comdat_group ();
> }
> -
> -/* Return comdat group of DECL. */
> -static inline tree
> -decl_comdat_group (tree node)
> -{
> - struct symtab_node *snode = symtab_get_node (node);
> - if (!snode)
> - return NULL;
> - return snode->get_comdat_group ();
> -}
> #endif /* GCC_CGRAPH_H */
> Index: tree.h
> ===================================================================
> --- tree.h (revision 210908)
> +++ tree.h (working copy)
> @@ -3431,6 +3434,7 @@ tree_operand_check_code (const_tree __t,
> || ((NODE) && TREE_TYPE ((NODE)) == error_mark_node))
>
> extern tree decl_assembler_name (tree);
> +extern tree decl_comdat_group (tree);
>
> /* Compute the number of bytes occupied by 'node'. This routine only
> looks at TREE_CODE and, if the code is TREE_VEC, TREE_VEC_LENGTH. */
> Index: tree.c
> ===================================================================
> --- tree.c (revision 210908)
> +++ tree.c (working copy)
> @@ -603,6 +603,16 @@ decl_assembler_name (tree decl)
> return DECL_WITH_VIS_CHECK (decl)->decl_with_vis.assembler_name;
> }
>
> +/* Return comdat group of DECL. */
> +tree
> +decl_comdat_group (tree node)
> +{
> + struct symtab_node *snode = symtab_get_node (node);
> + if (!snode)
> + return NULL;
> + return snode->get_comdat_group ();
> +}
> +
> /* Compute the number of bytes occupied by a tree with code CODE.
> This function cannot be used for nodes that have variable sizes,
> including TREE_VEC, INTEGER_CST, STRING_CST, and CALL_EXPR. */
Jan Hubicka May 27, 2014, 4:19 a.m. UTC | #2
> Hi Jan,
> 
> 
> looks good.  Thanks!

Thanks,
I have commited the change.

Honza
diff mbox

Patch

Index: cgraph.h
===================================================================
--- cgraph.h	(revision 210908)
+++ cgraph.h	(working copy)
@@ -1621,14 +1621,4 @@  symtab_in_same_comdat_p (symtab_node *on
 
   return one->get_comdat_group () == two->get_comdat_group ();
 }
-
-/* Return comdat group of DECL.  */
-static inline tree
-decl_comdat_group (tree node)
-{
-  struct symtab_node *snode = symtab_get_node (node);
-  if (!snode)
-    return NULL;
-  return snode->get_comdat_group ();
-}
 #endif  /* GCC_CGRAPH_H  */
Index: tree.h
===================================================================
--- tree.h	(revision 210908)
+++ tree.h	(working copy)
@@ -3431,6 +3434,7 @@  tree_operand_check_code (const_tree __t,
    || ((NODE) && TREE_TYPE ((NODE)) == error_mark_node))
 
 extern tree decl_assembler_name (tree);
+extern tree decl_comdat_group (tree);
 
 /* Compute the number of bytes occupied by 'node'.  This routine only
    looks at TREE_CODE and, if the code is TREE_VEC, TREE_VEC_LENGTH.  */
Index: tree.c
===================================================================
--- tree.c	(revision 210908)
+++ tree.c	(working copy)
@@ -603,6 +603,16 @@  decl_assembler_name (tree decl)
   return DECL_WITH_VIS_CHECK (decl)->decl_with_vis.assembler_name;
 }
 
+/* Return comdat group of DECL.  */
+tree
+decl_comdat_group (tree node)
+{
+  struct symtab_node *snode = symtab_get_node (node);
+  if (!snode)
+    return NULL;
+  return snode->get_comdat_group ();
+}
+
 /* Compute the number of bytes occupied by a tree with code CODE.
    This function cannot be used for nodes that have variable sizes,
    including TREE_VEC, INTEGER_CST, STRING_CST, and CALL_EXPR.  */