Cuik icon indicating copy to clipboard operation
Cuik copied to clipboard

parsing (maybe lexing?) of glibc headers broken

Open Carlyle-Foster opened this issue 2 months ago • 0 comments

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..)

Carlyle-Foster avatar Oct 14 '25 10:10 Carlyle-Foster