aboutsummaryrefslogtreecommitdiff
path: root/tcc.c
Commit message (Collapse)AuthorAgeFilesLines
* libtcc: Detect (but ignore) -init and -fini for -WlDetlef Riekenberg2010-04-051-1/+1
| | | | | -- By by ... Detlef
* libtcc: Allow multiple options for -Wl separated with ','Detlef Riekenberg2010-04-051-83/+2
| | | | | | | I moved the code to libtcc to prepare for a later tiny_ld -- By by ... Detlef
* Add support for --helpDetlef Riekenberg2010-01-261-0/+1
|
* Recognize -Wl,-BsymbolicDetlef Riekenberg2010-01-261-0/+2
| | | | | | | | | | | | | | | 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
* allow tcc be build from separate objectsgrischka2009-12-201-16/+16
| | | | If you want that, run: make NOTALLINONE=1
* tcc: add "-Wl,-rpath=path" option (library search path)grischka2009-12-191-0/+2
|
* ARM: first support for arm-pe targetFrederic Feret2009-11-131-0/+3
|
* various fixes and new options for PE formatFrederic Feret2009-11-131-0/+39
|
* tcc: optionally build using libtccgrischka2009-07-181-0/+4
|
* tccpe: set tcc_lib_path from DLLgrischka2009-07-181-3/+1
|
* bcheck: restore malloc hooks when donegrischka2009-07-181-16/+12
|
* accept option -x <lang>grischka2009-06-171-0/+4
|
* enable making tcc using libtccgrischka2009-05-111-6/+4
|
* move static prototypes to libtcc.cgrischka2009-05-111-1/+1
|
* move some global variables into TCCStategrischka2009-05-111-20/+10
|
* make tcc from tcc.c and libtcc from libtcc.cgrischka2009-05-051-3/+0
|
* move minor things from libtcc.c to other filesgrischka2009-05-051-21/+38
|
* move libtcc interface and helper functions to libtcc.cgrischka2009-05-051-2281/+1
|
* move parser/generator to tccgen.cgrischka2009-05-051-5102/+1
|
* move preprocessor to tccpp.cgrischka2009-05-051-2642/+1
|
* move declarations to tcc.hgrischka2009-05-051-935/+1
|
* enable backtrace only when it's supportedgrischka2009-04-181-8/+15
|
* libtcc: new api tcc_set_lib_pathgrischka2009-04-181-6/+11
|
* tcc_relocate: return error and remove unused codegrischka2009-04-181-18/+5
|
* Call relocate_sym() before we return the offset, so user doesn't need to ↵Shinichiro Hamaji2009-04-181-5/+5
| | | | check the return value twice.
* tcc -E: fix pasting empty tokensgrischka2009-04-181-23/+13
| | | | | | | | | | | /* test case */ #define t(x,y,z) x ## y ## z int j[] = { t(1,2,3), t(,4,5), t(6,,7), t(8,9,), t(10,,), t(,11,), t(,,12), t(,,) }; tcc -E: xpected result: int j[] = { 123, 45, 67, 89, 10, 11, 12, };
* tcc -E: preserve spaces, alternative solutiongrischka2009-04-181-43/+73
| | | | | | | | | | | | /* test case */ #define STR(x) #x #define MKSTR(x) STR(x) MKSTR(-A-) MKSTR(+ B +) tcc -E: expected result: "-A-" "+ B +"
* CONFIG_TCC_STATIC: add dummy for dlclosegrischka2009-04-181-0/+4
|
* avoid warning uninitializedgrischka2009-04-181-1/+1
|
* x86-64: Fix tcc -run. We need extra memory for PLT and GOT.Shinichiro Hamaji2009-04-181-9/+22
| | | | Size of the extra buffer is too large for now.
* get rid of 8 bytes memory leakgrischka2009-04-181-0/+1
|
* change tcc_add/get_symbol to use void*grischka2009-04-181-4/+3
|
* alternative int tcc_relocate(TCCState *s1, void *ptr);grischka2009-04-181-69/+60
|
* TOK_builtin_malloc: alternative solutiongrischka2009-04-181-14/+4
|
* x86-64: Fix cast from integers to pointers.Shinichiro Hamaji2009-04-181-3/+9
| | | | | | | | Now, ./tcc -run -DTCC_TARGET_X86_64 tcc.c -run tcctest.c works!
* Fixes for issues I've just found/introduced to x86 TCC.Shinichiro Hamaji2009-04-181-0/+5
| | | | | - Cast from pointer to long long makes TCC output an error. Use cast to int before we apply shift operation for a pointer value. - Removed test cases for casts from pointer to char/short because they produce warning.
* x86-64: Cast from 64bit pointer to long long must not generate movslq.Shinichiro Hamaji2009-04-181-1/+1
|
* win32: accept uppercase filename suffixesgrischka2009-04-181-3/+5
|
* x86-64: There can be valid addresses which is greater than 0xc0000000.Shinichiro Hamaji2009-04-181-1/+1
|
* Fix for x86-64: The first and second arguments of memcpy must be pointers.Shinichiro Hamaji2009-04-181-2/+2
|
* Fix silly typos in the previous change.Shinichiro Hamaji2009-04-181-2/+2
|
* x86-64: Make ABI for long double compatible with GCC.Shinichiro Hamaji2009-04-181-3/+25
| | | | | | - Now we use x87's stack top the long double return values. - Add rc_fret and reg_fret, wrapper functions for RC_FRET and REG_FRET. - Add a test case to check if strto* works OK.
* x86-64: Combine buffers of sections before we call tcc_run().Shinichiro Hamaji2009-04-181-19/+52
| | | | | | | - Now we can run tcc -run tcc.c successfully, though there are some bugs. - Remove jmp_table and got_table and use text_section for got and plt entries. - Combine buffers in tcc_relocate(). - Use R_X86_64_64 instead of R_X86_64_32 for R_DATA_32 (now the name R_DATA_32 is inappropriate...).
* Generate PIC code so that we can create shared objects properly.Shinichiro Hamaji2009-04-181-1/+6
| | | | | | - Add got_table in TCCState. This approach is naive and the distance between executable code and GOT can be longer than 32bit. - Handle R_X86_64_GOTPCREL properly. We use got_table for TCC_OUTPUT_MEMORY case for now. - Fix load() and store() so that they access global variables via GOT.
* check for absolute include pathsgrischka2009-04-181-6/+16
| | | | Suggested by Sandor Zsolt <narkoskatona@yahoo.com>
* get rid of "free_section problem" with private sectionsgrischka2009-04-181-13/+14
|
* accept "restrict" in array-decl (STDC 199901)grischka2009-04-181-0/+2
|
* i386: apply "align=8 for doubles ..." for PE onlygrischka2009-04-181-0/+4
|
* x86-64 bug fix: Use stack with alignment just like 32bit environments.Shinichiro Hamaji2009-04-181-5/+4
|
* Remove multiple definition error caused by combination of x86-64 and va_list.Shinichiro Hamaji2009-04-181-0/+18
| | | | | We need malloc and free to implement va_start and va_end. Since malloc and free may be replaced by #define, we add __builtin_malloc and __builtin_free.