aboutsummaryrefslogtreecommitdiff
path: root/libtcc.c
Commit message (Collapse)AuthorAgeFilesLines
* win64: defined size_t and ptrdiff_t to unsigned long longgrischka2010-01-141-7/+12
|
* x86-64: use uplong for symbol valuesgrischka2010-01-141-1/+1
|
* tccpe: improve dllimport/export and use for tcc_add_symbolgrischka2010-01-141-20/+24
|
* build from multiple objects: fix other targetsgrischka2009-12-201-0/+7
|
* allow tcc be build from separate objectsgrischka2009-12-201-624/+108
| | | | If you want that, run: make NOTALLINONE=1
* win32: enable bounds checker & exception handlergrischka2009-12-191-2/+6
| | | | exception handler borrowed from k1w1. Thanks.
* tcc_relocate: revert to 0.9.24 behaviorgrischka2009-12-191-0/+1
|
* tccrun: new filegrischka2009-12-191-497/+9
| | | | factor out -run support
* tccpe: improve dllimportgrischka2009-12-191-0/+5
|
* integrate x86_64-asm.c into i386-asm.cgrischka2009-12-191-8/+8
| | | | | Also, disable 16bit support for now as it causes bugs in 32bit mode. #define I386_ASM_16 if you want it.
* tccpe: allow linkage to extern symbols from asmgrischka2009-12-191-0/+1
|
* tccasm: make VT_VOID symbols ST_NOTYPE, elf-wisegrischka2009-12-191-0/+2
| | | | | | | This was confusing objdump such that it did not print disassembly with -d. Also, put filename as with C compilation
* solve tccelf problem on FreeBSDLuigi Rizzo2009-12-011-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* various fixes and new options for PE formatFrederic Feret2009-11-131-0/+4
|
* first support of x86_64 assemblyFrederic Feret2009-11-131-0/+6
|
* added 16-bit x86 assembly supportFrederic Feret2009-11-131-0/+3
|
* #define __TINYC__ = version-numbergrischka2009-11-131-1/+5
|
* x86-64: change the type of size_t and ptrdiff_t.Shinichiro Hamaji2009-08-241-2/+2
| | | | size_t and ptrdiff_t should be unsigned long and long, respectively.
* tccpe: set tcc_lib_path from DLLgrischka2009-07-181-28/+7
|
* tccpe: load dll on the flygrischka2009-07-181-86/+127
|
* win64: fix pointer <-> unsigned long typecast issuesgrischka2009-07-181-6/+7
|
* pe32+ target: add in various #define'sgrischka2009-07-181-0/+7
|
* tccpe: build IAT vector with with -run toogrischka2009-07-181-8/+5
| | | | | This prepares for x86_64 where we need the vector for far jumps. Also, resolve DLL symbols in place
* cleanup: stop abuse of sym->c for #define tokenstreamsgrischka2009-07-181-0/+3
|
* cleanup: put prototypes in front of libtcc.cgrischka2009-07-181-57/+105
|
* bcheck: restore malloc hooks when donegrischka2009-07-181-7/+15
|
* error messages: print "error: ..."grischka2009-06-171-0/+2
|
* drop alloca #definegrischka2009-05-161-1/+1
| | | | | | | (Because GNU's alloca.h unconditionally #undef's alloca) Also, remove gcc specific sections in headers. and instead change tests such that gcc does not use them.
* enable making tcc using libtccgrischka2009-05-111-12/+15
|
* move static prototypes to libtcc.cgrischka2009-05-111-1/+124
|
* move some global variables into TCCStategrischka2009-05-111-31/+32
|
* make tcc from tcc.c and libtcc from libtcc.cgrischka2009-05-051-5/+0
|
* move minor things from libtcc.c to other filesgrischka2009-05-051-277/+1
|
* move global variables to libtcc.cgrischka2009-05-051-0/+111
|
* move libtcc interface and helper functions to libtcc.cgrischka2009-05-051-0/+2282
|
* new files: tcc.h libtcc.c tccpp.c tccgen.cgrischka2009-05-051-0/+20