summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgrischka <grischka>2008-03-31 19:50:58 +0000
committergrischka <grischka>2008-03-31 19:50:58 +0000
commitf22e961f805d25482d0eefabc7a1bca202cbe599 (patch)
tree8da5d1e7cf2b1c303bbce38e83ac52fffda2daac
parenta327c7a55245536a00539f46b0cee689875e3754 (diff)
update manual, changelogrelease_0_9_24
-rw-r--r--Changelog5
-rw-r--r--Makefile2
-rw-r--r--tcc-doc.texi31
-rw-r--r--tcc.c2
-rw-r--r--tcctest.c2
5 files changed, 27 insertions, 15 deletions
diff --git a/Changelog b/Changelog
index 8c27cd9..2843040 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 e0757b0..5c27b0a 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 168a877..38426ca 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 a3ff576..9e30eeb 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 fca987d..69c5bf6 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