Hello,

I've encountered a compilation issue related to '#include_next' when compiling GNU coreutils, when using the latest tcc from git.

Coreutils (gnulib, technically) creates a local ./lib/sys/types.h file,
which calls '#include_next <sys/types.h>', then through several other includes, the compliation fails (while it succeeds with gcc and clang).

To reproduce:

     wget http://ftpmirror.gnu.org/coreutils/coreutils-8.24.tar.xz
     tar -xf coreutils-8.24.tar.xz
     cd coreutils-8.24/
     ./configure CC=tcc
     make
     [...]
     make[2]: Entering directory '/home/miles/coreutils-8.24'
       CC       lib/copy-acl.o
     In file included from lib/copy-acl.c:22:
     In file included from lib/acl.h:24:
     In file included from ./lib/sys/types.h:28:
     In file included from lib/sys/types.h:28:
     In file included from /usr/include/x86_64-linux-gnu/sys/types.h:219:
     In file included from ./lib/sys/select.h:77:
     ./lib/sys/types.h:28: error: include file 'sys/types.h' not found
     Makefile:8830: recipe for target 'lib/copy-acl.o' failed
     make[2]: *** [lib/copy-acl.o] Error 1

To reproduce with a smaller test program (after running 'make' which generates 'lib/sys/types.h'), do:

     $ pwd
     /home/user/coreutils-8.24

     $ echo "#include <sys/param.h>"   > 1.c
     $ echo "int main() { return 0; }" >> 1.c

     $ gcc -I./lib -c -o /dev/null 1.c && echo ok
     ok
     $ clang -I./lib -c -o /dev/null 1.c && echo ok
     ok
     $ tcc -I./lib -c -o /dev/null 1.c && echo ok
     In file included from 1.c:1:
     In file included from /usr/include/x86_64-linux-gnu/sys/param.h:25:
     In file included from ./lib/sys/types.h:28:
     In file included from /usr/include/x86_64-linux-gnu/sys/types.h:219:
     In file included from ./lib/sys/select.h:77:
     ./lib/sys/types.h:28: error: include file 'sys/types.h' not found

Regards,
  - assaf

_______________________________________________
Tinycc-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to