History

update

bellard committed 23 years ago

Commit 4e6edcd1 parent 98713a63 files · +61 −18Browse files

Unified · Split

3 files
  1. Changelog +1 −0
  2. TODO +10 −9
  3. tcc-doc.texi +50 −9
Changelog+1−0
@@ -13,6 +13,7 @@ version 0.9.19: · 12 unmodified lines
13- fixed macro argument substitution13- fixed macro argument substitution
14- fixed zero argument macro parsing14- fixed zero argument macro parsing
15- changed license to LGPL15- changed license to LGPL
16- added -rdynamic option support
16 17
17version 0.9.18:18version 0.9.18:
18 19
TODO+10−9
@@ -1,5 +1,13 @@
1TODO list:1TODO list:
2 2
3- long long constant evaluation
4- configure --cc=tcc (still one bug in libtcc1.c)
5- disable-asm and disable-bcheck options
6- test binutils/gcc compile
7- add alloca(), __builtin_expect()
8- gcc '-E' option.
9- optimize VT_LOCAL + const
10- tci patch + argument.
3- '-b' bug.11- '-b' bug.
4- atexit (Nigel Horne)12- atexit (Nigel Horne)
5- see -lxxx bug (Michael Charity).13- see -lxxx bug (Michael Charity).
@@ -8,31 +16,24 @@ TODO list: · 2 unmodified lines
8- precise behaviour of typeof with arrays ? (__put_user macro)16- precise behaviour of typeof with arrays ? (__put_user macro)
9- #include_next support for /usr/include/limits ?17- #include_next support for /usr/include/limits ?
10 but should suffice for most cases)18 but should suffice for most cases)
11- handle '? x, y : z' in reversed function arguments or unsized19- handle '? x, y : z' in unsized variable initialization (',' is
12 variable initialization (',' is considered incorrectly as separator20 considered incorrectly as separator in preparser)
13 in preparser) : change func argument code generator ?
14- function pointers/lvalues in ? : (linux kernel net/core/dev.c)21- function pointers/lvalues in ? : (linux kernel net/core/dev.c)
15- transform functions to function pointers in function parameters (net/ipv4/ip_output.c)22- transform functions to function pointers in function parameters (net/ipv4/ip_output.c)
16- fix function pointer type display23- fix function pointer type display
17- fix bound exit on RedHat 7.324- fix bound exit on RedHat 7.3
18- fix static link on RedHat 7.3
19- check lcc test suite -> fix bitfield binary operations25- check lcc test suite -> fix bitfield binary operations
20- check section alignment in C26- check section alignment in C
21- fix invalid cast in comparison 'if (v == (int8_t)v)'27- fix invalid cast in comparison 'if (v == (int8_t)v)'
22- packed attribute28- packed attribute
23- look at patches from Scott Lafferty
24- look at bugs from Jason Petrasko.
25- support link once trick (gcc 3.2 / glibc compilation issue)29- support link once trick (gcc 3.2 / glibc compilation issue)
26- finish varargs.h support (gcc 3.2 testsuite issue)30- finish varargs.h support (gcc 3.2 testsuite issue)
27- add alloca()
28- fix static functions declared inside block31- fix static functions declared inside block
29- C99: add variable size arrays (gcc 3.2 testsuite issue)32- C99: add variable size arrays (gcc 3.2 testsuite issue)
30- C99: add complex types (gcc 3.2 testsuite issue)33- C99: add complex types (gcc 3.2 testsuite issue)
31- postfix compound literals (see 20010124-1.c)34- postfix compound literals (see 20010124-1.c)
32- fix multiple unions init35- fix multiple unions init
33- test includes in libtcc_test.
34- look at GCC 3.2 compatibility problems.36- look at GCC 3.2 compatibility problems.
35- add option for auto run
36- setjmp is not supported properly in bound checking.37- setjmp is not supported properly in bound checking.
37- better local variables handling (needed for other targets)38- better local variables handling (needed for other targets)
38- fix bound check code with '&' on local variables (currently done39- fix bound check code with '&' on local variables (currently done
tcc-doc.texi+50−9
@@ -67,9 +67,7 @@ generation (@pxref{Libtcc}). · 66 unmodified lines
67 67
68@example68@example
69@c man begin SYNOPSIS69@c man begin SYNOPSIS
70usage: tcc [@option{-v}] [@option{-c}] [@option{-o}@var{outfile}] [@option{-B}@var{dir}] [@option{-bench}] [@option{-I}@var{dir}] [@option{-D}@var{sym[=val]}] [@option{-U}@var{sym}]70usage: tcc [options] [@var{infile1} @var{infile2}@dots{}] [@option{-run} @var{infile} @var{args}@dots{}]
71 [@option{-g}] [@option{-b}] [@option{-bt}@var{N}] [@option{-L}@var{dir}] [@option{-l}@var{lib}] [@option{-shared}] [@option{-static}]
72 [@var{infile1} @var{infile2}@dots{}] [@option{run} @var{infile} @var{args}@dots{}]
73@c man end71@c man end
74@end example72@end example
75 73
@@ -181,6 +179,27 @@ also be defined: @option{-DF(a)=a+1} · 105 unmodified lines
181Undefine preprocessor symbol @samp{sym}.179Undefine preprocessor symbol @samp{sym}.
182@end table180@end table
183 181
182Warning options:
183
184Note: each warning option has a negative form beginning with @option{-Wno-}.
185
186@table @option
187@item -Wunsupported
188Warn about unsupported GCC features that are ignored by TCC.
189
190@item -Wwrite-strings
191Make string constants being of type @code{const char *} intead of @code{char
192*}.
193
194@item -Werror
195Abort compilation if warnings are issued.
196
197@item -Wall
198Activate all warnings, except @option{-Werror}, @option{-Wunusupported} and
199@option{-Wwrite-strings} (currently not useful).
200
201@end table
202
184Linker options:203Linker options:
185 204
186@table @option205@table @option
@@ -201,6 +220,10 @@ must also be given). · 14 unmodified lines
201Generate a statically linked executable (default is a shared linked220Generate a statically linked executable (default is a shared linked
202executable) (@option{-o} option must also be given).221executable) (@option{-o} option must also be given).
203 222
223@item -rdynamic
224Export global symbols to the dynamic linker. It is useful when a library
225opened with @code{dlopen()} needs to access executable symbols.
226
204@item -r227@item -r
205Generate an object file combining all input files (@option{-o} option must228Generate an object file combining all input files (@option{-o} option must
206also be given).229also be given).
@@ -227,7 +250,7 @@ Display N callers in stack traces. This is useful with @option{-g} or · 20 unmodified lines
227 250
228@end table251@end table
229 252
230Note: GCC options @option{-Ox}, @option{-Wx}, @option{-fx} and @option{-mx} are253Note: GCC options @option{-Ox}, @option{-fx} and @option{-mx} are
231ignored.254ignored.
232@c man end255@c man end
233 256
@@ -434,6 +457,9 @@ TCC includes its own x86 inline assembler with a @code{gas}-like (GNU · 200 unmodified lines
434assembler) syntax. No intermediate files are generated. GCC 3.x named457assembler) syntax. No intermediate files are generated. GCC 3.x named
435operands are supported.458operands are supported.
436 459
460@item @code{__builtin_types_compatible_p()} and @code{__builtin_constant_p()}
461are supported.
462
437@end itemize463@end itemize
438 464
439@section TinyCC extensions465@section TinyCC extensions
@@ -531,6 +557,12 @@ They can be defined several times in the same source. Use 'b' · 91 unmodified lines
531@cindex .short557@cindex .short
532@cindex .int558@cindex .int
533@cindex .long559@cindex .long
560@cindex .string
561@cindex .globl
562@cindex .section
563@cindex .text
564@cindex .data
565@cindex .bss
534 566
535All directives are preceeded by a '.'. The following directives are567All directives are preceeded by a '.'. The following directives are
536supported:568supported:
@@ -544,6 +576,12 @@ supported: · 7 unmodified lines
544@item .short value1[,value2...]576@item .short value1[,value2...]
545@item .int value1[,value2...]577@item .int value1[,value2...]
546@item .long value1[,value2...]578@item .long value1[,value2...]
579@item .string string
580@item .global symbol
581@item .section section
582@item .text
583@item .data
584@item .bss
547@end itemize585@end itemize
548 586
549@section X86 Assembler587@section X86 Assembler
@@ -569,10 +607,10 @@ Dynamic ELF libraries can be output but the C compiler does not generate · 19 unmodified lines
569position independent code (PIC). It means that the dynamic librairy607position independent code (PIC). It means that the dynamic librairy
570code generated by TCC cannot be factorized among processes yet.608code generated by TCC cannot be factorized among processes yet.
571 609
572TCC linker cannot currently eliminate unused object code. But TCC610TCC linker eliminates unreferenced object code in libraries. A single pass is
573will soon integrate a novel feature not found in GNU tools: unused code611done on the object and library list, so the order in which object files and
574will be eliminated at the function or variable level, provided you only612libraries are specified is important (same constraint as GNU ld). No grouping
575use TCC to compile your files.613options (@option{--start-group} and @option{--end-group}) are supported.
576 614
577@section ELF file loader615@section ELF file loader
578 616
@@ -584,12 +622,15 @@ libraries (.so). · 5 unmodified lines
584@cindex linker scripts622@cindex linker scripts
585@cindex GROUP, linker command623@cindex GROUP, linker command
586@cindex FILE, linker command624@cindex FILE, linker command
625@cindex OUTPUT_FORMAT, linker command
626@cindex TARGET, linker command
587 627
588Because on many Linux systems some dynamic libraries (such as628Because on many Linux systems some dynamic libraries (such as
589@file{/usr/lib/libc.so}) are in fact GNU ld link scripts (horrible!),629@file{/usr/lib/libc.so}) are in fact GNU ld link scripts (horrible!),
590the TCC linker also supports a subset of GNU ld scripts.630the TCC linker also supports a subset of GNU ld scripts.
591 631
592The @code{GROUP} and @code{FILE} commands are supported.632The @code{GROUP} and @code{FILE} commands are supported. @code{OUTPUT_FORMAT}
633and @code{TARGET} are ignored.
593 634
594Example from @file{/usr/lib/libc.so}:635Example from @file{/usr/lib/libc.so}:
595@example636@example