diff options
Diffstat (limited to 'tcc-doc.texi')
-rw-r--r-- | tcc-doc.texi | 31 |
1 files changed, 19 insertions, 12 deletions
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 |