Hi,
I will try to compil gcc-python-plugin with gcc-4.9.2 (from debian Jessie),
I encountered the following error :
make[1]: Entering directory
'/media/extras/mickael/programmation/lib_ext/gcc-python-plugin/gcc-c-api'
python xml-to-h.py
cc -O2 -Werror -g -fPIC -fno-strict-aliasing -Wall
-I/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include
-I/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/c-family -I. -c -x c++
-fno-rtti -o gcc-callgraph.o gcc-callgraph.c
In file included from gcc-callgraph.c:31:0:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:283:10: error:
use of enum ‘internal_fn’ without previous declaration
enum internal_fn GTY ((tag ("GF_CALL_INTERNAL"))) internal_fn;
^
In file included from gcc-callgraph.c:31:0:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:1170:41: error:
use of enum ‘internal_fn’ without previous declaration
gimple gimple_build_call_internal (enum internal_fn, unsigned, ...);
^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:1171:45: error:
use of enum ‘internal_fn’ without previous declaration
gimple gimple_build_call_internal_vec (enum internal_fn, vec<tree> );
^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h: In function
‘bool gimple_store_p(gimple)’:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:2346:36: error:
‘is_gimple_reg’ was not declared in this scope
return lhs && !is_gimple_reg (lhs);
^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h: At global scope:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:2444:20: error:
use of enum ‘internal_fn’ without previous declaration
static inline enum internal_fn
^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:2544:46: error:
use of enum ‘internal_fn’ without previous declaration
gimple_call_set_internal_fn (gimple gs, enum internal_fn fn)
^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h: In function
‘tree_node* gimple_call_fndecl(const_gimple)’:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:2559:54: error:
‘gimple_call_addr_fndecl’ was not declared in this scope
return gimple_call_addr_fndecl (gimple_call_fn (gs));
^
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h: In function
‘tree_node* gimple_expr_type(const_gimple)’:
/usr/lib/gcc/x86_64-linux-gnu/4.9/plugin/include/gimple.h:5657:45: error:
‘IFN_MASK_STORE’ was not declared in this scope
&& gimple_call_internal_fn (stmt) == IFN_MASK_STORE)
^
Makefile:92: recipe for target 'gcc-callgraph.o' failed
After searching, it seems that some #include file are missing in
gcc-callgraph.c
I do the following modification and the compilation finishs correctly:
diff --git a/gcc-c-api/gcc-callgraph.c b/gcc-c-api/gcc-callgraph.c
index aa05a53..e9feb96 100644
--- a/gcc-c-api/gcc-callgraph.c
+++ b/gcc-c-api/gcc-callgraph.c
@@ -26,6 +26,8 @@
#if (GCC_VERSION >= 5000)
#include "gimple-expr.h"
#endif
+#include "internal-fn.h"
+#include "gimple-expr.h"
#include "gimple.h"
/***********************************************************
Can you check and may be commit if you think that the following patch is OK
for you ?
Thanks,
Mickael.