aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tccpp: Add missing bracket in an error messageDetlef Riekenberg2010-03-311-1/+1
|
* Catch array[index] with unknown sizeof(*array)Daniel Glöckner2010-03-151-2/+5
| | | | We could support this for index == 0, but GCC doesn't bother, so why should we?
* weak function symbolsManuel Simoni2010-02-276-3/+32
|
* fill got table for static linkingAli Gholami Rudi2010-02-053-0/+54
|
* Fixed bug which prevent tcc preprocessor to ignore line number directivesAlexandre Becoulet2010-02-011-1/+1
|
* Added patch to detect and use the paths for 64bit libraries asNikos Mavrogiannopoulos2010-01-284-2/+17
| | | | used by CentOS (affects X86_64 only).
* Dump the current token in skip(), when it's not the expected tokenDetlef Riekenberg2010-01-271-1/+1
|
* Add support for --helpDetlef Riekenberg2010-01-261-0/+1
|
* Add support for the __mode__ attributeDetlef Riekenberg2010-01-263-1/+30
| | | | | -- By by ... Detlef
* Recognize -Wl,-BsymbolicDetlef Riekenberg2010-01-263-0/+9
| | | | | | | | | | | | | | | Without -Bsymbolic, a symbol/function in a *.so can be overridden by a symbol/function in the main module. That is the default search order, but not supported by tcc. With -Bsymbolic, the linker tries to resolve a symbol/function in the current module first. The loader in tcc implements this search order. We do not distinguish -Bsymbolic and -Bsymbolic-function -- By by ... Detlef
* Makefile: Delete tcc-doc.html during 'make distclean'Detlef Riekenberg2010-01-261-1/+1
|
* win32: adjust for mingw32 winapi packagesgrischka2010-01-261-0/+11
| | | | | | Note: the files in tcc/win32/include/winapi are now from the mingw-w64 project, however with this fix using mingw32 winapi should still work.
* tccpp: signal missing #endif errorgrischka2010-01-141-2/+5
|
* tccpp: convert TOK_GET macro into functiongrischka2010-01-143-72/+68
|
* tccpp: warn about #define redefinitiongrischka2010-01-141-0/+19
|
* win64: defined size_t and ptrdiff_t to unsigned long longgrischka2010-01-143-31/+43
|
* win32: cleanup includegrischka2010-01-148-485/+57
|
* x86-64: use uplong for symbol valuesgrischka2010-01-144-15/+13
|
* tccpe: improve dllimport/export and use for tcc_add_symbolgrischka2010-01-147-133/+177
|
* win32: readme: add libtcc_test examplegrischka2010-01-141-6/+4
|
* update Makefilesgrischka2009-12-202-48/+39
|
* build from multiple objects: fix other targetsgrischka2009-12-207-13/+36
|
* x86-64: fix gtst, back to only 5 regs for nowgrischka2009-12-201-17/+9
|
* x86-64: use r8/r9 as generic integer registersgrischka2009-12-201-151/+98
|
* x86-64: use r8,r9 as load/store registersgrischka2009-12-201-43/+74
|
* win32: add size_t to _mingw.hgrischka2009-12-201-0/+9
|
* use vpushv in some placesgrischka2009-12-204-3/+4
|
* win64: add tiny unwind data for setjmp/longjmpgrischka2009-12-207-110/+322
| | | | | | | | | This enables native unwind semantics with longjmp on win64 by putting an entry into the .pdata section for each compiled fuction. Also, the function now use a fixed stack and store arguments into X(%rsp) rather than using push.
* allow tcc be build from separate objectsgrischka2009-12-2016-1040/+1317
| | | | If you want that, run: make NOTALLINONE=1
* win32: enable bounds checker & exception handlergrischka2009-12-1911-331/+421
| | | | exception handler borrowed from k1w1. Thanks.
* tcc_relocate: revert to 0.9.24 behaviorgrischka2009-12-195-32/+30
|
* tccrun: new filegrischka2009-12-192-497/+527
| | | | factor out -run support
* fix uninitialized warnings with 'type.ref'grischka2009-12-192-0/+4
|
* tccpe: with -l try also with "lib" prefixgrischka2009-12-191-8/+11
| | | | -lfoo searches: foo.def, libfoo.def, foo.dll, libfoo.dll
* tccpe: improve dllimportgrischka2009-12-196-44/+51
|
* integrate x86_64-asm.c into i386-asm.cgrischka2009-12-1912-1842/+521
| | | | | Also, disable 16bit support for now as it causes bugs in 32bit mode. #define I386_ASM_16 if you want it.
* tcc: add "-Wl,-rpath=path" option (library search path)grischka2009-12-195-3/+16
|
* x86-64: fix udiv, add cqto instructiongrischka2009-12-192-1/+8
|
* tccpe: allow linkage to extern symbols from asmgrischka2009-12-192-0/+24
|
* tccasm: make VT_VOID symbols ST_NOTYPE, elf-wisegrischka2009-12-192-0/+8
| | | | | | | This was confusing objdump such that it did not print disassembly with -d. Also, put filename as with C compilation
* x86-64: in gv(): ignore second registergrischka2009-12-191-5/+8
|
* win64: adjust for two args with setjmp(buf,ctx)grischka2009-12-192-0/+10
|
* x86-64: Fix Wrong comparisonbetweenpointerandlongcsteChristian Jullien2009-12-191-0/+4
| | | | | | | | | | main (int argc, char *argv[]) { char *p = (char *)0x12345678ABCD000F; int res; res = (p != (char *)0x12345678ABCD000F); return res; }
* i386-asm: fix imulgrischka2009-12-061-1/+2
| | | | | | With imul the 3rd operand defaults to the 2nd on. The previous logic left 'op_type[2]' uninitialized which caused the bug to show up only sometimes.
* tccgen: propagate alignment from typedefgrischka2009-12-062-38/+34
| | | | | Store (part of) the AttributeDef structure in the (int)sym-r field of the typedef symbol (kludgy).
* avoid needless register save when storing structuresbobbl2009-12-011-7/+7
| | | | | | | When storing structs with a memcpy call in vstore(), so far a needless entry remaining on the vstack sometimes resulted in an useless store generated by save_regs() in gfunc_call() for the memcpy routine.
* document -print-search-dirsBernhard Reutner-Fischer2009-12-011-0/+4
| | | | Signed-off-by: aldot <rep.dot.nop@gmail.com>
* improve handling of --helpBernhard Reutner-Fischer2009-12-011-1/+3
| | | | | | Previously ./configure --prefix=/foo --help didn't show the help-text Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
* solve tccelf problem on FreeBSDLuigi Rizzo2009-12-012-13/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Sun, Nov 22, 2009 at 05:43:14PM +0100, Luigi Rizzo wrote: > Hi, > there is a well known problem with tcc and FreeBSD in the generation > of elf objects -- see > http://lists.gnu.org/archive/html/tinycc-devel/2005-07/msg00070.html > > Apparently Sergey Lyubka has tried a partial fix to the problem. > I was wondering if Sergey or someone can post some more detail on > what needs to be done so we can try to help fixing this issue I think i have managed to solve the problem and produce almost valid elf files on FreeBSD. The two patches attached address a few problems (trying to explain to the best of my knowledge; i am not very familiar with ELF and the FreeBSD ELF conventions): 1. ELF file format tcc produces an ELF executable which is good for linux but not for FreeBSD. It misses the PHDR section which is almost mandatory for shared executables, puts in the .dynsym section some relocation info that FreeBSD expects to be in .got, and expect the relocation sections to be contiguous. patch-tccelf.c tries to address the above problem using conditional sections (so hopefully can be imported upstream) and also adds the ability to override the name of the dynamic loader through an environment variable (this is important to debug tcc). 2. predefined macros patch-libtcc.c adds/fixes some predefined macros when compiling on FreeBSD: these are __FreeBSD__ and the usual set of __i386__ and __unix__ variants. It also sets __INTEL_COMPILER so we can grab the __aligned macro from cdefs.h , otherwise many programs would fail The resulting elf file is still not 100% correct -- if you strip it, the program will not run (presumably there is some dangling reference). Other than that, program do seem to run correctly. It would be nice to integrate these patches in the main repository. The FreeBSD specific code is in #ifdef so it should not harm linux users cheers luigi
* win32: remove #define alloca from mingw headersgrischka2009-12-011-1/+1
|