Cuik
Cuik copied to clipboard
parsing (maybe lexing?) of glibc headers broken
for cuik built with luajit build.lua -driver -x64 on linux mint 22 (i had to disable the cuikgo stuff and copy the changes from #52 as well)
// foo.c
#include <stdio.h>
int main(void) {
printf("foo\n");
return 0;
}
when built with: ./bin/cuik foo.c outputs this monstrosity (the whitespace shown here seems to be halllucinated):
Included from /home/million/Programming/third-party/Cuik/foo.c:1
Included from /usr/include/stdio.h:28
Included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33
Included from /usr/include/features.h:526
Included from /usr/include/x86_64-linux-gnu/gnu/stubs.h:10
ERROR[0000]: expected ';', got 'selects'
--> /usr/include/x86_64-linux-gnu/gnu/stubs-64.h:18:3666
|
18|
| ^~~~
| ;
|
Included from /home/million/Programming/third-party/Cuik/foo.c:1
Included from /usr/include/stdio.h:28
Included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33
Included from /usr/include/features.h:526
Included from /usr/include/x86_64-linux-gnu/gnu/stubs.h:10
ERROR[0000]: expected ';', got 'right'
--> /usr/include/x86_64-linux-gnu/gnu/stubs-64.h:18:3679
|
18|
| ^~~
| ;
|
Included from /home/million/Programming/third-party/Cuik/foo.c:1
Included from /usr/include/stdio.h:28
Included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33
Included from /usr/include/features.h:526
Included from /usr/include/x86_64-linux-gnu/gnu/stubs.h:10
ERROR[0000]: expected ';', got 'file'
--> /usr/include/x86_64-linux-gnu/gnu/stubs-64.h:18:3689
|
18|
| ^~~~~~~~~
| ;
|
Included from /home/million/Programming/third-party/Cuik/foo.c:1
Included from /usr/include/stdio.h:28
Included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33
Included from /usr/include/features.h:526
Included from /usr/include/x86_64-linux-gnu/gnu/stubs.h:10
ERROR[0000]: symbol 'file' is not a typedef.
--> /usr/include/x86_64-linux-gnu/gnu/stubs-64.h:18:3698
|
18|
| ^~~~
|
Included from /home/million/Programming/third-party/Cuik/foo.c:1
Included from /usr/include/stdio.h:28
Included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33
Included from /usr/include/features.h:526
Included from /usr/include/x86_64-linux-gnu/gnu/stubs.h:10
NOTE: declared here
--> /usr/include/x86_64-linux-gnu/gnu/stubs-64.h:18:3665
|
18|
| ^~~~
|
Included from /home/million/Programming/third-party/Cuik/foo.c:1
Included from /usr/include/stdio.h:28
Included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33
Included from /usr/include/features.h:526
Included from /usr/include/x86_64-linux-gnu/gnu/stubs.h:10
ERROR[0000]: could not parse base type.
--> /usr/include/x86_64-linux-gnu/gnu/stubs-64.h:18:3698
|
18|
| ^
|
Included from /home/million/Programming/third-party/Cuik/foo.c:1
Included from /usr/include/stdio.h:28
Included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33
Included from /usr/include/features.h:526
Included from /usr/include/x86_64-linux-gnu/gnu/stubs.h:10
ERROR[0000]: expected ';', got '`'
--> /usr/include/x86_64-linux-gnu/gnu/stubs-64.h:18:3704
|
18|
| ^~
| ;
|
Included from /home/million/Programming/third-party/Cuik/foo.c:1
Included from /usr/include/stdio.h:28
Included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33
Included from /usr/include/features.h:526
Included from /usr/include/x86_64-linux-gnu/gnu/stubs.h:10
ERROR[0000]: unknown typename `
--> /usr/include/x86_64-linux-gnu/gnu/stubs-64.h:18:3706
|
18|
| ^
|
Included from /home/million/Programming/third-party/Cuik/foo.c:1
Included from /usr/include/stdio.h:28
Included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33
Included from /usr/include/features.h:526
Included from /usr/include/x86_64-linux-gnu/gnu/stubs.h:10
ERROR[0000]: could not parse base type.
--> /usr/include/x86_64-linux-gnu/gnu/stubs-64.h:18:3706
|
18|
| ^
|
Included from /home/million/Programming/third-party/Cuik/foo.c:1
Included from /usr/include/stdio.h:28
Included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33
Included from /usr/include/features.h:526
Included from /usr/include/x86_64-linux-gnu/gnu/stubs.h:10
ERROR[0000]: expected ';', got '' macros
based on the architecture being compiled for. */
#if !defined __x86_64__
# include <gnu/stubs-32.h>
#endif
#if defined __x86_64__ && defined __LP64__
# include <gnu/stubs-64.h>
#endif
#if defined __x86_64__ && defined __ILP32__
# include <gnu/stubs-x32.h>
#endif
'
--> /usr/include/x86_64-linux-gnu/gnu/stubs-64.h:18:3708
|
18|
| ^~~~~~~~~~~~~~~
| ;
|
Included from /home/million/Programming/third-party/Cuik/foo.c:1
Included from /usr/include/stdio.h:28
Included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33
Included from /usr/include/features.h:526
Included from /usr/include/x86_64-linux-gnu/gnu/stubs.h:10
ERROR[0000]: unknown typename ' macros
based on the architecture being compiled for. */
#if !defined __x86_64__
# include <gnu/stubs-32.h>
#endif
#if defined __x86_64__ && defined __LP64__
# include <gnu/stubs-64.h>
#endif
#if defined __x86_64__ && defined __ILP32__
# include <gnu/stubs-x32.h>
#endif
--> /usr/include/x86_64-linux-gnu/gnu/stubs-64.h:18:3722
|
18|
| ^
|
there's a bit more but github has a limit of max(u16) characters (fair enough for a free platform i guess..)