FreeBSD Port: tcc-0.9.26_3

Ben Wiederhake ben.wiederhake at gmail.com
Thu Apr 14 00:21:48 UTC 2016


Hello,

"#include <stdint.h>" seems to be impossible with tcc on FreeBSD.

Steps to reproduce:
Try to compile the following program:
"""
#include <stdint.h>
#include <stdio.h>
int main(void){printf("Hello world\n");}
"""

Excepted results:
Compilation finishes with no errors.

Actual results:
"""
In file included from foo.c:1:
In file included from /usr/include/stdint.h:33:
In file included from /usr/include/sys/_types.h:33:
In file included from /usr/include/machine/_types.h:6:
/usr/include/x86/_types.h:161: error: too many basic types
"""
And compilation fails.
In a real life project, it fails at exactly the same spot [2]

Diagnostics from the meatbag (hello!):
- Using gcc and clang instead works fine.  This must be tcc's fault, not 
system-headers'.
- On Ubuntu and Debian, tcc 0.9.26 works fine, too.  This must be some 
fault in the compilation, environment, or libraries of tcc, not tcc's 
code itself.
- The error message stems from line 2510 in tccgen.c [1]. However, I 
don't understand how it got there and where it "counts".
- This might also be due to a forgotten semicolon [3], which I deem 
inlikely for a system header.
- Note that tcc is one-pass, so it doesn't even know anything except the 
first line of foo.c.  Thus, tcc is currently unusable for me.

Versions, as far as I can tell:
- 'tcc -dumpversion' says '0.9.26'.
- `pkg upgrade` says 'Your packages are up to date.'
- `uname -a` says 'FreeBSD  10.3-RELEASE FreeBSD 10.3-RELEASE #0 
r297264: Fri Mar 25 02:10:02 UTC 2016'

Regards,
Ben Wiederhake

[1] 
https://github.com/search?utf8=%E2%9C%93&q=%22too+many+basic+types%22&type=Code&ref=searchresults
[2] https://gitlab.com/BenWiederhake/endian-ci/builds/1077867
[3] https://lists.gnu.org/archive/html/tinycc-devel/2008-09/msg00033.html


More information about the freebsd-ports mailing list