47 lines
1.9 KiB
Plaintext
47 lines
1.9 KiB
Plaintext
This is a modified version of musl libc 1.12 which is able to be
|
|
compiled with TinyCC on x86_64 machines.
|
|
|
|
Although TinyCC is quite complete as a tiny C compiler,some features are
|
|
still missing,including:
|
|
- _Complex types
|
|
All related to _Complex are removed.
|
|
- Full GNU-style inline assembly support.
|
|
The original versions of __syscall4(),__syscall5() and __syscall6()
|
|
don't work.They are replaced by assembly implemention in
|
|
/src/internal/x86_64/syscall.S
|
|
- math library has been use the pure C implementation
|
|
Because some missing floating-point features of TinyCC.
|
|
|
|
Some features had been removed momently but now they are usable,including:
|
|
- fenv library
|
|
- math library(using C implementation now)
|
|
- dynamic link support (NOT well tested)
|
|
|
|
To compile,simply run
|
|
./configure --target=x86_64 CC='tcc' AR='tcc -ar' RANLIB='echo' \
|
|
LIBCC='/usr/local/lib/tcc/libtcc1.a'
|
|
make # I finish my compiling in 10s with
|
|
two threads on i7-720QM @ 1.60GHz
|
|
TinyCC's runtime environment library libtcc1.a needs specifying manually
|
|
now.The path of argument LIBCC may need adjusting for your machine.
|
|
|
|
All modified and addtional files are under MIT License as well.
|
|
Some changes are made to my TinyCC (This means I may have a different
|
|
version from yours,so if you fail to compile,try to get the lastest
|
|
version from TinyCC's Git Repository.The building process is OK on
|
|
commit 2d210fe.The later version should also work
|
|
$ tcc -v tcc # on my machine
|
|
version 0.9.27 mob:2d210fe (x86_64 Linux)
|
|
|
|
Some helper scripts are in /tests/Compile.sh (for static link) and
|
|
/tests/Compile_Dynamic.sh (for dynamic link).As is mentioned,modifying the
|
|
path to libtcc1.a may be needed.
|
|
|
|
A simple single-filed editor pico is included (/tests/pico.c),its LICENSE is
|
|
DIFFERENT from original musl and musl-tcc.So be careful when you use it.
|
|
This generates its exectuable file:
|
|
$ ./Compile.sh pico.c pico
|
|
or
|
|
$ ./Compile_Dynamic.sh pico.c pico
|
|
Please run these commands in /tests/
|