aboutsummaryrefslogtreecommitdiff
path: root/tccelf.c
Commit message (Collapse)AuthorAgeFilesLines
...
* First naive DLL support on x86-64.Shinichiro Hamaji2009-04-181-3/+33
| | | | This logic depends on x86_64-gen.c and doesn't work with objects compiled by GCC.
* Add support of x86-64.Shinichiro Hamaji2008-12-021-3/+136
| | | | | | | | | | | | | | | | | | | | | | Most change was done in #ifdef TCC_TARGET_X86_64. So, nothing should be broken by this change. Summary of current status of x86-64 support: - produces x86-64 object files and executables. - the x86-64 code generator is based on x86's. -- for long long integers, we use 64bit registers instead of tcc's generic implementation. -- for float or double, we use SSE. SSE registers are not utilized well (we only use xmm0 and xmm1). -- for long double, we use x87 FPU. - passes make test. - passes ./libtcc_test. - can compile tcc.c. The compiled tcc can compile tcc.c, too. (there should be some bugs since the binary size of tcc2 and tcc3 is differ where tcc tcc.c -o tcc2 and tcc2 tcc.c -o tcc3) - can compile links browser. It seems working. - not tested well. I tested this work only on my linux box with few programs. - calling convention of long-double-integer or struct is not exactly the same as GCC's x86-64 ABI. - implementation of tcc -run is naive (tcc -run tcctest.c works, but tcc -run tcc.c doesn't work). Relocating 64bit addresses seems to be not as simple as 32bit environments. - shared object support isn't unimplemented - no bounds checker support - some builtin functions such as __divdi3 aren't supported
* silly bug fix: s/#ifdef PTR_SIZE == 4/#if PTR_SIZE == 4/Shinichiro Hamaji2008-12-021-1/+1
|
* Make tccelf.c 64bit ready.Shinichiro Hamaji2008-12-021-9/+20
| | | | | | | - Use REL_SECTION_FMT instead of ".rel%s". - Use PTR_SIZE instead of sizeof(int) for GOT entries. - Use sizeof(ElfW(Dyn)) instead of magic number 8. - Use TCC_ELFCLASS instead of ELFCLASS32.
* Introduce ElfW macro and ELFW to encapsulate the difference between Elf32_* ↵Shinichiro Hamaji2008-12-021-163/+173
| | | | and Elf64_*. Also, introduce ElfW_Rel and SHT_RELX for difference between REL and RELA.
* Allow to use libgcc instead of libtcc1Daniel Glöckner2008-09-121-0/+6
| | | | | | | | | | | | | | | This patch adds a switch --with-libgcc to configure. When passed it prevents libtcc1.a from being built and links to /lib/libgcc_s.so.1 instead of PREFIX/lib/tcc/libtcc1.a. It will work on ARM when using libgcc from GCC >= 4.2.0. Prior versions don't have the __floatun[sd]i[sdx]f functions. It won't work on i386 because of two missing symbols emitted when floats are cast to integers, but users can provide those symbols (global short constants) in their code if needed. Daniel
* release loaded dlls cleanly (Sam K)grischka2008-05-051-1/+1
|
* enable pe-output from libtcc (Shmuel Zeigerman)grischka2008-05-051-1/+15
|
* fix stabstr with linked objectsgrischka2008-04-271-1/+31
|
* fix bogus relocations with TCC_OUTPUT_DLLgrischka2008-04-271-2/+17
|
* added verbosity levels (-vv -vvv)grischka2008-03-311-0/+2
|
* Add -soname linker option (Marc Andre Tanner)grischka2008-03-251-3/+58
|
* Fix 'tcc -static' with recent glibcgrischka2008-03-081-6/+10
|
* Switch to newer tccpe.c (includes support for resources)grischka2007-12-191-82/+79
|
* Import 409,410: ARM EABI by Daniel Glöcknergrischka2007-12-041-7/+35
|
* Import more changesets from Rob Landley's fork (part 2)grischka2007-11-211-1/+18
|
* Fix 'invalid relocation entry' problem on ubuntu - from Bernhard Fischergrischka2007-10-301-3/+5
|
* tcc_load_dll fix (Tao Wu)bellard2005-10-301-3/+3
|
* ignore AS_NEEDED ld commandbellard2005-09-031-21/+40
|
* win32 merge (grischka)bellard2005-04-171-9/+2
|
* better st_other supportbellard2005-04-131-14/+23
|
* initial PE format supportbellard2005-04-101-6/+1
|
* removed warningsbellard2004-11-071-1/+6
|
* copyright updatebellard2004-10-271-1/+1
|
* correct libtcc1 link orderbellard2004-10-271-4/+3
|
* fixed linker symbol generation - output format supportbellard2004-10-231-90/+141
|
* _end symbol definition fix - fixed section alignment logicbellard2004-10-181-14/+26
|
* C67 COFF executable format support (TK)bellard2004-10-051-0/+22
|
* initial TMS320C67xx support (TK)bellard2004-10-041-0/+31
|
* ARM target support (Daniel Glockner) - allow unsigned char as default on ↵bellard2003-10-141-8/+116
| | | | ARM (Daniel Glockner) - fixed small ld script support (Daniel Glockner)
* fixed libc linking when running in memorybellard2003-10-041-2/+5
|
* .gnu.linkonce section support (useful to link with recent glibc)bellard2003-10-041-3/+28
|
* changed tcc_get_symbol() prototypebellard2003-07-201-4/+13
|
* added init_array defines for new ld compatibilitybellard2003-05-291-0/+33
|
* added -rdynamic supportbellard2003-05-241-2/+12
|
* changed license to LGPLbellard2003-05-241-11/+11
|
* alacarte linking (Dave Long)bellard2003-04-281-7/+59
|
* added -nostdlibbellard2003-04-271-7/+11
|
* ignore OUTPUT_FORMAT and TARGET ld script commands (fixes Redhat >= 7 static ↵bellard2003-04-161-0/+15
| | | | link problems)
* fixed comment parsingbellard2003-04-131-1/+2
|
* PLT generation fixbellard2003-04-131-46/+68
|
* FreeBSB fixes - elf align issuesbellard2002-12-081-0/+11
|
* parsing optimizationsbellard2002-11-231-1/+1
|
* prepared parser for direct use of file->buf_ptr - faster comment parsingbellard2002-11-221-1/+2
|
* suppressed ch1 and preparserbellard2002-11-221-43/+82
|
* removed many memory leaks - suppressed many global variablesbellard2002-11-021-162/+205
|
* added tcc_relocate() and tcc_get_symbol()bellard2002-09-081-3/+3
|
* suppressed section_ptr - fixed constant string allocationbellard2002-08-181-2/+3
|
* moved ELF specific stuff to tccelf.cbellard2002-08-181-0/+1844