From f22e961f805d25482d0eefabc7a1bca202cbe599 Mon Sep 17 00:00:00 2001 From: grischka Date: Mon, 31 Mar 2008 19:50:58 +0000 Subject: [PATCH] update manual, changelog --- Changelog | 5 ++++- Makefile | 2 +- tcc-doc.texi | 31 +++++++++++++++++++------------ tcc.c | 2 ++ tcctest.c | 2 +- 5 files changed, 27 insertions(+), 15 deletions(-) diff --git a/Changelog b/Changelog index 8c27cd90..28430400 100644 --- a/Changelog +++ b/Changelog @@ -1,8 +1,11 @@ version 0.9.24: +- added verbosity levels -v, -vv, -vvv +- Accept standard input as an inputstream (Hanzac Chen) +- Support c89 compilers other than gcc (Hanzac Chen) +- -soname linker option (Marc Andre Tanner) - Just warn about unknown directives, ignore quotes in #error/#warning - Define __STDC_VERSION__=199901L (477) - - Switch to newer tccpe.c (includes support for resources) - Handle backslashes within #include/#error/#warning - Import changesets (part 4) 428,457,460,467: defines for openbsd etc. diff --git a/Makefile b/Makefile index e0757b05..5c27b0ae 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,7 @@ test: test.ref test.out @if diff -u test.ref test.out ; then echo "Auto Test OK"; fi tcctest.ref: tcctest.c - $(CC) $(CFLAGS) -I. -o $@ $< + $(CC) $(CFLAGS) -w -I. -o $@ $< test.ref: tcctest.ref ./tcctest.ref > $@ diff --git a/tcc-doc.texi b/tcc-doc.texi index 168a8777..38426ca7 100644 --- a/tcc-doc.texi +++ b/tcc-doc.texi @@ -414,13 +414,6 @@ is the same as writing @end itemize @section GNU C extensions -@cindex aligned attribute -@cindex packed attribute -@cindex section attribute -@cindex unused attribute -@cindex cdecl attribute -@cindex stdcall attribute -@cindex regparm attribute TCC implements some GNU C extensions: @@ -454,13 +447,22 @@ instead of @} @end example +@cindex aligned attribute +@cindex packed attribute +@cindex section attribute +@cindex unused attribute +@cindex cdecl attribute +@cindex stdcall attribute +@cindex regparm attribute +@cindex dllexport attribute + @item The keyword @code{__attribute__} is handled to specify variable or function attributes. The following attributes are supported: @itemize @item @code{aligned(n)}: align a variable or a structure field to n bytes (must be a power of two). - + @item @code{packed}: force alignment of a variable or a structure field to 1. @@ -478,6 +480,8 @@ section. between 1 and 3. The first @var{n} function parameters are respectively put in registers @code{%eax}, @code{%edx} and @code{%ecx}. + @item @code{dllexport}: export function from dll/executable (win32 only) + @end itemize Here are some examples: @@ -733,10 +737,13 @@ 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. -Currently TCC for Windows cannot generate nor read PE object files, so ELF -object files are used for that purpose. It can be a problem if -interoperability with MSVC is needed. Moreover, no leading underscore is -currently generated in the ELF symbols. +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}. + +No leading underscore is generated in the ELF symbols. Only functions (no +data) can be exported. Bounds checking (@option{-b}) is not supported currently. @section GNU Linker Scripts @cindex scripts, linker diff --git a/tcc.c b/tcc.c index a3ff5769..9e30eeb0 100644 --- a/tcc.c +++ b/tcc.c @@ -1035,6 +1035,7 @@ static char *pstrcat(char *buf, int buf_size, const char *s) return buf; } +#ifndef LIBTCC static int strstart(const char *str, const char *val, const char **ptr) { const char *p, *q; @@ -1050,6 +1051,7 @@ static int strstart(const char *str, const char *val, const char **ptr) *ptr = p; return 1; } +#endif /* extract the basename of a file */ static char *tcc_basename(const char *name) diff --git a/tcctest.c b/tcctest.c index fca987d6..69c5bf6a 100644 --- a/tcctest.c +++ b/tcctest.c @@ -223,7 +223,7 @@ void macro_test(void) #line 203 "test" printf("__LINE__=%d __FILE__=%s\n", __LINE__, __FILE__); -#line 220 "tcctest.c" +#line 227 "tcctest.c" /* not strictly preprocessor, but we test it there */ #ifdef C99_MACROS -- 2.11.4.GIT