aboutsummaryrefslogtreecommitdiff
path: root/tcc-doc.texi
diff options
context:
space:
mode:
Diffstat (limited to 'tcc-doc.texi')
-rw-r--r--tcc-doc.texi34
1 files changed, 16 insertions, 18 deletions
diff --git a/tcc-doc.texi b/tcc-doc.texi
index 38426ca..7cc61bb 100644
--- a/tcc-doc.texi
+++ b/tcc-doc.texi
@@ -16,11 +16,8 @@
@headings double
@end iftex
-@c @ifhtml
@contents
-@c @end ifhtml
-@ifnothtml
@node Top, Introduction, (dir), (dir)
@top Tiny C Compiler Reference Documentation
@@ -29,10 +26,14 @@ This manual documents version @value{VERSION} of the Tiny C Compiler.
@menu
* Introduction:: Introduction to tcc.
* Invoke:: Invocation of tcc (command line, options).
+* Clang:: ANSI C and extensions.
+* asm:: Assembler syntax.
+* linker:: Output file generation and supported targets.
* Bounds:: Automatic bounds-checking of C code.
* Libtcc:: The libtcc library.
+* devel:: Guide for Developers.
@end menu
-@end ifnothtml
+
@node Introduction
@chapter Introduction
@@ -42,7 +43,7 @@ compilers, it is meant to be self-relying: you do not need an
external assembler or linker because TCC does that for you.
TCC compiles so @emph{fast} that even for big projects @code{Makefile}s may
-not be necessary.
+not be necessary.
TCC not only supports ANSI C, but also most of the new ISO C99
standard and many GNUC extensions including inline assembly.
@@ -63,11 +64,11 @@ ports for the ARM (@code{arm-tcc}) and the TMS320C67xx targets
(@code{c67-tcc}). More information about the ARM port is available at
@url{http://lists.gnu.org/archive/html/tinycc-devel/2003-10/msg00044.html}.
+For usage on Windows, see also tcc-win32.txt.
+
@node Invoke
@chapter Command line invocation
-[This manual documents version @value{VERSION} of the Tiny C Compiler]
-
@section Quick start
@example
@@ -142,7 +143,7 @@ TCC can read C source code from @emph{standard input} when @option{-} is used in
place of @option{infile}. Example:
@example
-echo 'main(){puts("hello");}' | tcc -run -
+echo 'main()@{puts("hello");@}' | tcc -run -
@end example
@c man end
@@ -346,6 +347,7 @@ Fabrice Bellard
@end ignore
+@node Clang
@chapter C language support
@section ANSI C
@@ -577,6 +579,7 @@ indicate that you use TCC.
@end itemize
+@node asm
@chapter TinyCC Assembler
Since version 0.9.16, TinyCC integrates its own assembler. TinyCC
@@ -706,6 +709,7 @@ tries to guess it from the operand sizes.
Currently, MMX opcodes are supported but not SSE ones.
+@node linker
@chapter TinyCC Linker
@cindex linker
@@ -733,17 +737,10 @@ libraries (.so).
@section PE-i386 file generation
@cindex PE-i386
-TCC for Windows supports the native Win32 executable file format (PE-i386). It
-generates both EXE and DLL files. DLL symbols can be imported thru DEF files
-generated with the @code{tiny_impdef} tool.
-
-On the object file level, currently TCC supports only the ELF format, not COFF
-as used by MINGW and MSVC. It is not possible to exchange object files or
-libraries between TCC and these compilers. However libraries for TCC from objects
-by TCC can be made using the @code{tiny_libmaker} tool or MINGW's @code{ar}.
+TCC for Windows supports the native Win32 executable file format (PE-i386). It
+generates EXE files (console and gui) and DLL files.
-No leading underscore is generated in the ELF symbols. Only functions (no
-data) can be exported. Bounds checking (@option{-b}) is not supported currently.
+For usage on Windows, see also tcc-win32.txt.
@section GNU Linker Scripts
@cindex scripts, linker
@@ -854,6 +851,7 @@ The idea consists in giving a C string containing the program you want
to compile directly to @code{libtcc}. Then you can access to any global
symbol (function or variable) defined.
+@node devel
@chapter Developer's guide
This chapter gives some hints to understand how TCC works. You can skip