aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Disable C99 VLA when alloca is unavailable."Thomas Preud'homme2011-02-052-10/+2
| | | | This reverts commit e3e5d4ad7a475e30ea13ad1ba9f23e6210d5d431.
* update VT_STRUCT_SHIFT for new VT_VLAJoe Soroka2011-02-042-2/+2
|
* fix crash with get_tok_str() in skip()grischka2011-02-041-1/+1
| | | | | crash was triggered by numbers etc. as unexpected token, i.e. everything that requires additional information with the token.
* Disable C99 VLA when alloca is unavailable.Thomas Preud'homme2011-02-042-2/+10
| | | | | | | | | | | | | | | * Disable C99 VLA detection when alloca is unavailable and protect the new reference to TOK_alloca in decl_initializer in order to compile and run for architecture without working alloca. Not all code of C99 VLA is commented as it would required many ifdef stanza. Just the detection is commented so that VT_VLA is never set any type and the C99 VLA code is compiled but never called. However vpush_global_sym(&func_old_type, TOK_alloca) in decl_initializer needs to be protected by an ifdef stanza as well because it uses TOK_alloca. * include alloca and C99 VLA tests according to availability of TOK_alloca instead of relying on the current architecture
* Make TOK_alloca available for x86-64Thomas Preud'homme2011-02-041-0/+2
| | | | | | | TOK_alloca is now available on x86-64 so make put definition of TOK_alloca outside the BCHECK conditional macro definition but test if arch is i386 or x86-64. This makes C99 VLA works (understand compile) on x86-64.
* Reorder increasingly VT_* constants in tcc.hThomas Preud'homme2011-02-042-24/+24
|
* Implement C99 Variable Length ArraysThomas Preud'homme2011-02-046-33/+169
| | | | | | | Implement C99 Variable Length Arrays in tinycc: - Support VLA with multiple level (nested vla) - Update documentation with regards to VT_VLA - Add a testsuite in tcctest.c
* Correct Changelog wrt. to fix attributionThomas Preud'homme2011-02-041-1/+2
| | | | | Correctly attribute the patch bringing support for Debian GNU/kFreeBSD kernels to Pierre Chifflier.
* tcc: add sysinclude path with -B, like gcc doesJoe Soroka2011-02-021-1/+7
|
* add -isystem cmdline optionJoe Soroka2011-02-012-1/+6
|
* tcctest: plugged memleak (was polluting valgrind reports)Joe Soroka2011-02-011-0/+1
|
* tccasm: accept bracketed offset expressionsJoe Soroka2011-02-012-2/+15
|
* tccasm: accept "fmul/fadd st(0),st(n)" (dietlibc ipow/atanh)Joe Soroka2011-02-012-0/+6
|
* tccasm: allow one-line prefix+op things like "rep stosb"Joe Soroka2011-02-014-2/+68
|
* tccasm: define __ASSEMBLER__ for .S files, like gcc doesJoe Soroka2011-02-012-0/+10
|
* tccpp: fix bug in handling of recursive macrosJoe Soroka2011-02-013-2/+47
|
* weak definitions overrule non-weak prototypesJoe Soroka2011-02-013-2/+27
|
* tccasm: support .weak labelsJoe Soroka2011-02-012-0/+5
|
* support weak attribute on variablesJoe Soroka2011-02-014-4/+29
|
* asmtest: avoid testing against complex nop alignment in gasJoe Soroka2011-01-231-1/+2
| | | | | | | | | | | | | | | | | .align #,0x90 in gas ignores the 0x90 and outputs any kind of nop it feels like. the one avoided by this patch is a 7 byte nop, which gas has been doing since at least 1999: http://sourceware.org/ml/binutils/1999-10/msg00083.html In order to match what gas does, we would need to make code alignment target-specific, import a lot of code, and face the question: exactly which gas {version,target,tune} combo are we trying to match? see i386_align_code in: http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-i386.c?annotate=1.460&cvsroot=src The smart noppery is turned on via the special casing of 0x90 at line 438 in md_do_align in: http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-i386.h?annotate=1.1&cvsroot=src
* i386-asm: accept retl as a synonym for retJoe Soroka2011-01-212-0/+4
|
* accept multiple comma separated symbols for .globl/.global directives, like ↵Joe Soroka2011-01-202-2/+7
| | | | gas does
* tcc.c: fix an error when you build an object file with '-pthread' key setSergei Trofimovich2011-01-041-5/+11
| | | | | | | | | | | | | | | | | | | The problem was partially fixed by Henry in the following patch: tcc.c: skip -lpthread when -c option specified But that patch had one brawback: it is sensitive to argument order, as decision is taken during commandline parsing: $ tcc -c a.c -o a.o -pthread # 1. works fine tcc: error: file 'a.c' not found $ tcc -pthread -c a.c -o a.o # 2. blows tcc: error: cannot specify libraries with -c This patch fixes case 2. Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
* lib/alloca*: mark ELF stack access flags as nonexecutableSergei Trofimovich2011-01-043-0/+12
| | | | Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
* Makefile: respect LDFLAGS (set via --extra-ldflags=)Sergei Trofimovich2011-01-041-2/+2
| | | | Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
* Support struct arguments with stdarg.hShinichiro Hamaji2010-12-285-54/+135
| | | | | | | | - add __builtin_va_arg_types to check how arguments were passed - move most code of stdarg into libtcc1.c - remove __builtin_malloc and __builtin_free - add a test case based on the bug report (http://www.mail-archive.com/tinycc-devel@nongnu.org/msg03036.html)
* Make alignments for struct arguments 8 bytesShinichiro Hamaji2010-12-281-4/+4
| | | | | The ABI (http://www.x86-64.org/documentation/abi.pdf) says "The size of each argument gets rounded up to eightbytes"
* Test va_copy in tcctest.cShinichiro Hamaji2010-12-281-2/+4
|
* One more fix for tcc -runShinichiro Hamaji2010-12-281-1/+2
| | | | We don't need r_addend for addresses in PLT.
* Fix for the previous commit.Shinichiro Hamaji2010-12-281-2/+3
| | | | R_X86_64_PLT32 for .so doesn't need DLL relocation.
* Handle r_addend and R_X86_64_PLT32 properly.Shinichiro Hamaji2010-12-281-7/+6
| | | | | | | | | - r_addend should be applied for PLT entries as well - R_X86_64_PLT32 should be handled just like R_X86_64_PC32 - spec says GLOB_DAT and JUMP_SLOT don't need r_addend (not tested) http://www.x86-64.org/documentation/abi.pdf Now we can -run ELF objects generated by GCC.
* configure: --sharedir defaults to /usr/local/shareHenry Kroll III2010-12-231-2/+2
|
* configure: --sharedir documentation rootHenry Kroll III2010-12-221-25/+41
|
* make: fix cannot find -ltcc with --disable-rpathHenry Kroll III2010-12-211-2/+1
|
* make: fix install with CC=tcc and potential link problemHenry Kroll III2010-12-201-1/+6
|
* configure: add --disable-rpath option (Fedora)Henry Kroll III2010-12-202-0/+10
|
* configure: improvements to option --tccdirHenry Kroll III2010-12-201-5/+8
|
* tcc: add unsupported option -pedanticHenry Kroll III2010-12-201-0/+2
|
* tcc: -m32 prefix "win32-" when file extension is presentHenry Kroll III2010-12-131-4/+14
|
* tcc: fix format string in error handlerHenry Kroll III2010-12-081-4/+4
|
* tcc: oops, error handler does not accept format stringsHenry Kroll III2010-12-081-4/+4
|
* tcc: fix -m32 and add -m64 optionHenry Kroll III2010-12-081-25/+61
|
* tcc: move undef out of if blockHenry Kroll III2010-12-061-1/+1
|
* Merge branch 'mob' of git://repo.or.cz/tinycc into krollHenry Kroll III2010-12-061-1/+3
|\
| * Copy tcclib.h to tests directory so GCC uses its own headers.Shinichiro Hamaji2010-12-071-1/+3
| | | | | | | | | | | | | | http://repo.or.cz/w/tinycc.git/commit/86ffc4812952f11a35afa19b24a3e6d1a12f4490 removed this cp command. However, it was necessary to pass tests on x86-64 because include/stdarg.h is different from GCC's definition on x86-64.
* | tcc: add -m32 option to x86_64 cross compilersHenry Kroll III2010-12-062-1/+35
|/
* trim unnecessary bits from my previous 3 commitsHenry Kroll III2010-12-052-4/+1
|
* make: i386/libtcc1.a for i386-tcc (x86_64 to i386 cross)Henry Kroll III2010-12-051-2/+10
|
* make: cross compilers exist before using them (fixes parallel make)Henry Kroll III2010-12-041-1/+2
|
* tcc: add option -s for gcc compatibility (ignored)Henry Kroll III2010-12-041-1/+5
|