update manual, changelog

tcc-xref release_0_9_24
grischka 2008-03-31 19:50:58 +00:00
parent a327c7a552
commit f22e961f80
5 changed files with 27 additions and 15 deletions

View File

@ -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.

View File

@ -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 > $@

View File

@ -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

2
tcc.c
View File

@ -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)

View File

@ -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