Open
Description
I am trying to parse the libC library, I had it working on Ubuntu. I've now switched to nixos but the working castxml command doesn't seem to be built from pygccxml.
My current python code has:
xml_generator_config = parser.xml_generator_configuration_t(
xml_generator_path=generator_path,
xml_generator=generator_name,
include_paths=[
"/nix/store/c30dlkmiyrjxxjv6nv63igjkzcj1fzxi-gcc-6.4.0/lib/gcc/x86_64-unknown-linux-gnu/6.4.0/include",
"/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include",
],
cflags=" ",
castxml_epic_version=1,
)
with pygccxml 1.9.1 and castxml
castxml -v
clang version 4.0.1 (tags/RELEASE_401/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir:
Found candidate GCC installation: /nix/store/052l3p8a4m9iabs1smf1myj3g2w6rlij-gcc-6.4.0/lib/gcc/x86_64-unknown-linux-gnu/6.4.0
Found candidate GCC installation: /nix/store/052l3p8a4m9iabs1smf1myj3g2w6rlij-gcc-6.4.0/lib64/gcc/x86_64-unknown-linux-gnu/6.4.0
Selected GCC installation: /nix/store/052l3p8a4m9iabs1smf1myj3g2w6rlij-gcc-6.4.0/lib64/gcc/x86_64-unknown-linux-gnu/6.4.0
Candidate multilib: .;@m64
Selected multilib: .;@m64
pygccxml generates and calls the following command (which fails):
/nix/store/bgsr6clnq2ivppapayqdbzklkmqbd75b-CastXML-20171003/bin/castxml -nostdinc -I/nix/store/c30dlkmiyrjxxjv6nv63igjkzcj1fzxi-gcc-6.4.0/lib/gcc/x86_64-unknown-linux-gnu/6.4.0/include -I/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include -I"." -I"/nix/store/c30dlkmiyrjxxjv6nv63igjkzcj1fzxi-gcc-6.4.0/lib/gcc/x86_64-unknown-linux-gnu/6.4.0/include" -c -x c++ --castxml-cc-gnu /home/teto/.nix-profile/bin/clang++ --castxml-output=1 -o /run/user/1000/tmp6d6aac0v.xml test.h
/nix/store/bgsr6clnq2ivppapayqdbzklkmqbd75b-CastXML-20171003/bin/castxml -nostdinc -I/nix/store/c30dlkmiyrjxxjv6nv63igjkzcj1fzxi-gcc-6.4.0/lib/gcc/x86_64-unknown-linux-gnu/6.4.0/include -I/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include -I"." -I"/nix/store/c30dlkmiyrjxxjv6nv63igjkzcj1fzxi-gcc-6.4.0/lib/gcc/x86_64-unknown-linux-gnu/6.4.0/include" -x c++ --castxml-cc-gnu /home/teto/.nix-profile/bin/clang++ --castxml-output=1 -o /run/user/1000/tmp6d6aac0v.xml test.h
In file included from test.h:3:
In file included from /nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/stdio.h:862:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:360:7: warning: use of logical '&&' with constant
operand [-Wconstant-logical-operand]
&& __builtin_constant_p (__n)
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:360:7: note: use '&' for a bitwise operation
&& __builtin_constant_p (__n)
^~
&
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:360:7: note: remove constant to silence this warning
&& __builtin_constant_p (__n)
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:43:8: error: redefinition of a 'extern inline'
function 'vsprintf' is not supported in C++
__NTH (vsprintf (char *__restrict __s, const char *__restrict __fmt,
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:43:8: note: previous definition is here
__NTH (vsprintf (char *__restrict __s, const char *__restrict __fmt,
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:74:8: error: redefinition of a 'extern inline'
function 'vsnprintf' is not supported in C++
__NTH (vsnprintf (char *__restrict __s, size_t __n,
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:74:8: note: previous definition is here
__NTH (vsnprintf (char *__restrict __s, size_t __n,
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:114:1: error: redefinition of a 'extern inline'
function 'vprintf' is not supported in C++
vprintf (const char *__restrict __fmt, _G_va_list __ap)
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:114:1: note: previous definition is here
vprintf (const char *__restrict __fmt, _G_va_list __ap)
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:124:1: error: redefinition of a 'extern inline'
function 'vfprintf' is not supported in C++
vfprintf (FILE *__restrict __stream,
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:124:1: note: previous definition is here
vfprintf (FILE *__restrict __stream,
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:150:1: error: redefinition of a 'extern inline'
function 'vdprintf' is not supported in C++
vdprintf (int __fd, const char *__restrict __fmt, _G_va_list __ap)
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:150:1: note: previous definition is here
vdprintf (int __fd, const char *__restrict __fmt, _G_va_list __ap)
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:207:8: error: redefinition of a 'extern inline'
function 'vasprintf' is not supported in C++
__NTH (vasprintf (char **__restrict __ptr, const char *__restrict __fmt,
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:207:8: note: previous definition is here
__NTH (vasprintf (char **__restrict __ptr, const char *__restrict __fmt,
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:214:8: error: redefinition of a 'extern inline'
function 'obstack_vprintf' is not supported in C++
__NTH (obstack_vprintf (struct obstack *__restrict __obstack,
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:214:8: note: previous definition is here
__NTH (obstack_vprintf (struct obstack *__restrict __obstack,
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:232:1: error: redefinition of a 'extern inline'
function 'gets' is not supported in C++
gets (char *__str)
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:232:1: note: previous definition is here
gets (char *__str)
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:252:1: error: redefinition of a 'extern inline'
function 'fgets' is not supported in C++
fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:252:1: note: previous definition is here
fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:281:1: error: redefinition of a 'extern inline'
function 'fread' is not supported in C++
fread (void *__restrict __ptr, size_t __size, size_t __n,
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:281:1: note: previous definition is here
fread (void *__restrict __ptr, size_t __size, size_t __n,
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:310:1: error: redefinition of a 'extern inline'
function 'fgets_unlocked' is not supported in C++
fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream)
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:310:1: note: previous definition is here
fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream)
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:342:1: error: redefinition of a 'extern inline'
function 'fread_unlocked' is not supported in C++
fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
^
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:342:1: note: previous definition is here
fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
^
In file included from test.h:11:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:360:7: warning: use of logical '&&' with constant
operand [-Wconstant-logical-operand]
&& __builtin_constant_p (__n)
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:360:7: note: use '&' for a bitwise operation
&& __builtin_constant_p (__n)
^~
&
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/stdio2.h:360:7: note: remove constant to silence this warning
&& __builtin_constant_p (__n)
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from test.h:13:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/wchar.h:325:47: warning: comparison of unsigned expression >= 0 is
always true [-Wtautological-compare]
{ return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f'
~~~~ ^ ~~~~~
In file included from test.h:70:
In file included from /nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/math.h:711:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/bits/mathinline.h:152:64: warning: use of GNU old-style field
designator extension [-Wgnu-designator]
__extension__ union { long double __l; int __i[3]; } __u = { __l: __x };
^~~~
.__l =
4 warnings and 12 errors generated.
If I edit the command manually aka remove the -c -x c++ --castxml-cc-gnu
it seems to work better :
/nix/store/bgsr6clnq2ivppapayqdbzklkmqbd75b-CastXML-20171003/bin/castxml -nostdinc -I/nix/store/c30dlkmiyrjxxjv6nv63igjkzcj1fzxi-gcc-6.4.0/lib/gcc/x86_64-unknown-linux-gnu/6.4.0/include -I/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include -I"." -I"/nix/store/c30dlkmiyrjxxjv6nv63igjkzcj1fzxi-gcc-6.4.0/lib/gcc/x86_64-unknown-linux-gnu/6.4.0/include" --castxml-cc-gnu /home/teto/.nix-profile/bin/clang++ --castxml-output=1 -o /run/user/1000/tmp6d6aac0v.xml test.h
/nix/store/bgsr6clnq2ivppapayqdbzklkmqbd75b-CastXML-20171003/bin/castxml -nostdinc -I/nix/store/c30dlkmiyrjxxjv6nv63igjkzcj1fzxi-gcc-6.4.0/lib/gcc/x86_64-unknown-linux-gnu/6.4.0/include -I/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include -I"." -I"/nix/store/c30dlkmiyrjxxjv6nv63igjkzcj1fzxi-gcc-6.4.0/lib/gcc/x86_64-unknown-linux-gnu/6.4.0/include" /home/teto/.nix-profile/bin/clang++ --castxml-output=1 -o /run/user/1000/tmp6d6aac0v.xml test.h
warning: /home/teto/.nix-profile/bin/clang++: 'linker' input unused [-Wunused-command-line-argument]
In file included from test.h:10:
/nix/store/mqalq0v2laqblw00dp7pwwckj2ra6jyh-glibc-2.26-75-dev/include/setjmp.h:54:12: warning: declaration of built-in function
'__sigsetjmp' requires inclusion of the header <setjmp.h> [-Wbuiltin-requires-header]
extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROWNL;
^
1 warning generated.
Looking at the code, the --castxml-cc-gnu seems always added on linux so I wonder if there is a way around.
Metadata
Metadata
Assignees
Labels
No labels