I am trying to find out whether tcc is a good alternative to cc and gcc on a Mac.
It will be fine for me to have all of ANSI C (C89/C90), much of the C99 ISO standard, and many GNU C extensions including inline assembly. So I cloned from repo.or.cz/tinycc.git <http://repo.or.cz/tinycc.git> and followed the instructions. I was able able to build the following version: tcc version 0.9.28rc 2025-09-21 mob@ba0899d9 (x86_64 Darwin) Fine. But “make test” obviously ran into 2 issues. Here is the output: /Library/Developer/CommandLineTools/usr/bin/codesign_allocate: fatal error: file not in an order that can be processed (symbol table out of place): /Users/hubert/Documents/Git/C/tinycc/tests/hello hello: the codesign_allocate helper tool cannot be found or used tcc: error: command failed 'codesign -f -s - hello' + ../tcc -vv tcc version 0.9.28rc 2025-09-21 mob@ba0899d9 (x86_64 Darwin) install: /usr/local/lib/tcc include: /usr/local/lib/tcc/include /usr/local/include /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include libraries: /usr/local/lib/tcc /usr/lib /lib /usr/local/lib /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib libtcc1: /usr/local/lib/tcc/libtcc1.a + otool -L ../tcc ../tcc: /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1) + exit 1 make[2]: *** [hello-exe] Error 1 make[1]: *** [all] Error 2 make: *** [test] Error 2 The first message seems to say that my codesign_allocate tool is not suitable. Both codesign and codesign_allocate are in /usr/bin and can be found. QUESTION 1: What is wrong and what can I do about it? However, changing into the examples folder, I can use “tcc -run” on ex1.c to get “Hello world”. Fine. But omitting “-run” produces the same error about codesign_allocate as above. After searching for OSX in the changelog, I found the following remark about version 0.9.26: Support OSX (tcc -run only) (Milutin Jovanovic) Strange. What does it mean? QUESTION 2: Does it mean that tcc does not fully support OSX - it’s experimental? TCC cannot produce native OSX executables? Is this state of affairs still officially present in the current 0.9.28rc? Then I noticed that tcc is also available via Homebrew. Now, “brew install tcc” tells me: Fetching downloads for: tcc Warning: tcc has been deprecated because it is not supported upstream! It will be disabled on 2026-09-16. ==> Downloading https://ghcr.io/v2/homebrew/core/tcc/manifests/0.9.27_1 … ==> Fetching tcc ==> Downloading https://ghcr.io/v2/homebrew/core/tcc/blobs/sha256:68930891a8746b … ==> Pouring tcc--0.9.27_1.catalina.bottle.tar.gz 🍺 /usr/local/Cellar/tcc/0.9.27_1: 20 files, 723.7KB ==> Running `brew cleanup tcc`… … ==> No outdated dependents to upgrade! QUESTION 3: What is that about being deprecated, not being supported upstream and being disabled from 2026-09-16? Is that serious? After that I have: tcc version 0.9.27 (x86_64 Darwin) Fine. Now back to examples and “tcc -run ex1.c” producing “Hello world”. Fine. But “tcc ex1.c” this time produces: tcc: error: file 'crt1.o' not found tcc: error: file 'crti.o' not found /usr/lib/libc.dylib: error: bad architecture tcc: error: library 'c' not found tcc: error: file 'crtn.o' not found tcc: error: undefined symbol ‘printf' So it seems, I didn’t make much progress. QUESTION 4: How should I go on from here? Thanks.
_______________________________________________ Tinycc-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/tinycc-devel
