This project is mirrored from Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
  1. 13 Dec, 2017 1 commit
    • grischka's avatar
      final update for 0.9.27 · d348a9a5
      grischka authored
      - fix ldouble asm hack
      - fix a VLA problem on Win64 (also x86_64-gen.c)
      - patch_type(): make sure that no symbol ever changes
        from global to static
      - tcc -vv: print libtcc1.a path also on win32
      tccpe.c, tcctools.c:
      - use unix LF mode to for .def output files (that is for
        creating reproducible output trees)
      - suppress some warnings when makeinfo is missing
      - call 'which install' only on win32
      - change PATH only on WINNT systems (i.e. not if cross-compiling
        on linux for win32)
      - asm-c-connect.test: slim output and do diff
      tccrun.c tccpe.c *-link.c:
      - integrate former 'pe_relocate_rva()' into normal relocation
        This also fixes linkage of the unwind data on WIN64 for -run
        (reported by Janus Lynggaard Thorborg)
      tccasm.c, tests/tcctest.c:
      - fix dot (sym_index of -1 crashed in put_elf_reloc)
      - massage .set a bit (see test)
      - #define SECTION_ABS removed
      - ST_DATA Section *strtab_section: removed
      - put_extern_sym2(): take int section number
  2. 04 Dec, 2017 1 commit
  3. 23 Nov, 2017 1 commit
    • Michael Matz's avatar
      tccasm: synch C and asm symtab tighter · e7c71e24
      Michael Matz authored
      See testcase.  The C and asm symtab are still separate,
      but integrated tighter: the asm labels are only synched at file
      end, not after each asm snippet (this fixes references from one
      to another asm block), the C and asm syms are synched both ways,
      so defining things in asm and refering from C, or the other way
      around works.  In effect this model reflects what happens with
      GCC better.
      For this the asm labels aren't using the C label namespace anymore,
      but their own, which increases the size of each TokenSym by a pointer.
  4. 12 Oct, 2017 1 commit
    • grischka's avatar
      various stuff · da8c62f7
      grischka authored
      win32/Makefile ("for cygwin") removed
      - On cygwin, the normal ./configure && make can be used with either
        cygwin's "GCC for Win32 Toolchain"
            ./configure --cross-prefix=i686-w64-mingw32-
        or with an existing tcc:
            ./configure --cc=<old-tccdir>/tcc.exe
      - exclude test_high_clobbers() on _WIN64 (does not work)
      - use 'signed char' for ARM (where default 'char' is unsigned)
      - remove -I "expr" diff option to allow tests with
      libtcc.c, tcc.c:
      - removed -iwithprefix option.  It is supposed to be
        combined with -iprefix which we don't have either.
      - fix assignments and return of 'void', as in
           void f() {
               void *p, *q;
               *p = *q:
               return *p;
        This appears to be allowed but should do nothing.
      tcc.h, libtcc.c, tccpp.c:
      - Revert "Introduce VIP sysinclude paths which are always searched first"
        This reverts commit 1d5e386b.
        The patch was giving tcc's system includes priority over -I which
        is not how it should be.
      - add DT_TEXTREL tag only if text relocations are actually
        used (which is likely not the case on x86_64)
      - prepare_dynamic_rel(): avoid relocation of unresolved
        (weak) symbols
      - for HAVE_SELINUX, use two mappings to the same (real) file.
        (it was so once except the RX mapping wasn't used at all).
      - fix relocation constant used for x86_64 (by Andrei E. Warentin)
      - #ifndef _WIN32 do "chmod 755 ..." to get runnable exes on cygwin.
      - keep forward asm labels static, otherwise they will endup
        in dynsym eventually.
      configure, Makefile:
      - mingw32: respect ./configure options --bindir --docdir --libdir
      - allow overriding tcc when building libtcc1.a and libtcc.def with
            make XTCC=<tcc program to use>
      - use $(wildcard ...) for install to allow installing just
        a cross compiler for example
            make cross-arm
            make install
      - use name <target>-libtcc1.a
      - add  options: -clean, -b bindir
  5. 24 Jul, 2017 1 commit
    • grischka's avatar
      tccgen: nodata_wanted fix, default ONE_SOURCE, etc... · 4b3c6e74
      grischka authored
        doubles need to be aligned, on ARM.  The section_reserve()
        in init_putv does not do that.
      -D ONE_SOURCE: is now the default and not longer needed. Also,
        tcc.h now sets the default native target.  These both make
        compiling tcc simple as "gcc tcc.c -o tcc -ldl" again.
        enable pseudo asm also for inline asm
        disable bitfield tests except on windows and x86_64
        and don't generate-always
        fix a loop with -dt on errors
        print compiler version (as recognized)
        actually define symbols for tcc -dt
        clear static variables (needed for -dt or libtcc usage)
        use __label__ instead of asm
        use native symbols (__i386__ etc.) instead of TCC_TARGET_...
  6. 13 May, 2017 1 commit
    • grischka's avatar
      configure: --config-musl/-uClibc switch & misc cleanups · 28435ec5
      grischka authored
      - configure:
        - add --config-uClibc,-musl switch and suggest to use
          it if uClibc/musl is detected
        - make warning options magic clang compatible
        - simplify (use $confvars instead of individual options)
      - Revert "Remove some unused-parameter lint"
        rather use -Wno-unused-parameter (or just not -Wextra)
      - #ifdef functions that are unused on some targets
      - tccgen.c: use PTR_SIZE==8 instead of (X86_64 || ARM64)
      - tccpe.c: fix some warnings
      - integrate dummy arm-asm better
  7. 26 Apr, 2017 1 commit
    • grischka's avatar
      final adjustments for release · 7acf9aa8
      grischka authored
      - configure/Makefiles: minor adjustments
      - build-tcc.bat: add -static to gcc options
        (avoids libgcc_s*.dll dependency with some mingw versions)
      - tccpe.c/tcctools.c: eliminate MAX_PATH
        (not available for cross compilers)
      - tccasm.c: use uint64_t/strtoull in unary()
        (unsigned long sometimes is only uint32_t, as always on windows)
      - tccgen.c: Revert (f077d16c) "tccgen: gen_cast: cast FLOAT to DOUBLE"
        Was a rather experimental, tentative commit, not really necessary
        and somewhat ugly too.
      - cleanup recent osx support:
        - Makefile/libtcc.c: cleanup copy&paste code
        - tccpp.c: restore deleted function
  8. 26 Feb, 2017 1 commit
    • Avi Halachmi (:avih)'s avatar
      win: tests Makefile: fix global path · 2da36731
      Avi Halachmi (:avih) authored
      Commit bb93064d changed the path seperator from ':' to ';', which was
      likely accidental. While path seperator on Windows is generally ';', the
      Makefile clearly expects a posix-y shell, and in such environments the
      separator is ':'.
      This fixes the test run in MSYS2 and MSYS(1) environments, which got
      broken on bb93064d .
  9. 25 Feb, 2017 1 commit
    • grischka's avatar
      makefile: unify cross with native builds · bb93064d
      grischka authored
      supports building cross compilers on the fly without need
      for configure --enable-cross
         $ make cross          # all compilers
         $ make cross-TARGET   # only TARGET-compiler & its libtcc1.a
      with TARGET one from
         i386 x86_64 i386-win32 x86_64-win32 arm arm64 arm-wince c67
      Type 'make help' for more information
  10. 21 Feb, 2017 1 commit
    • grischka's avatar
      tcc: re-enable correct option -r support · 5f33d313
      grischka authored
      Forgot about it.  It allows to compile several
      sources (and other .o's) to one single .o file;
          tcc -r -o all.o f1.c f2.c f3.S o4.o ...
      - option -fold-struct-init-code removed, no effect anymore
      - (tcc_)set_environment() moved to tcc.c
      - win32/lib/(win)crt1 minor fix & add dependency
      - debug line output for asm (tcc -c -g xxx.S) enabled
      - configure/Makefiles: x86-64 -> x86_64 changes
      - README: cleanup
  11. 14 Feb, 2017 1 commit
    • grischka's avatar
      updates & cleanups (tcc-doc/Changelog/TODO ...) · 43d9a7de
      grischka authored
      - tcc-doc.texi: commandline option info update
      - Changelog/TODO: update
      - tests/ removed
      - tests/Makefile: weaktest fixed
      - tests/tests2: some files renamed and/or converted to unix LF
      - configure/Makefile: --enable-static option (no dll on win32)
      - win32/build-tcc.bat: msvc support
      - win32/tcc-win32.txt: build info update
      - win32/vs2015/: VS solution removed
      - win32/include/tcc/tcc_libm.h: #include statement fixed
      - tcc.c: -include <file> option help info
      - .gitignore: cleanup
  12. 21 Dec, 2016 1 commit
    • grischka's avatar
      tests: OOT build fixes etc. · 71c5ce5c
      grischka authored
      tests/Makefile: fix out-of-tree build issues
      - win64: align(16) MEM_DEBUG user memory
        on win64 the struct jmp_buf in the TCCState structure which we
        allocate by tcc_malloc needs alignment 16 because the msvcrt
        setjmp uses MMX instructions.
      - libtcc_test.c: win32/64 need __attribute__((dllimport)) for
        extern data objects
      - tcctest.c: exclude stuff that gcc does not compile
        except for relocation_test() the other issues are mostly ASM
        related.  We should probably check GCC versions but I have
        no idea which mingw/gcc versions support what and which don't.
      - lib/Makefile: use tcc to compile libtcc1.a (except on arm
        which needs arm-asm
  13. 19 Dec, 2016 1 commit
    • grischka's avatar
      tests: add memory leak test · a1c12b9f
      grischka authored
      Also ...
      - exclude stuff that gcc doesn't compile on windows.
      - use unsigned for memory sizes to avoid printf format warnings
      - use "file:line: message" to make IDE error parsers happy.
      tccgen.c: fix typo
  14. 16 Dec, 2016 1 commit
  15. 02 Oct, 2016 3 commits
    • grischka's avatar
      tccgen: fix long long -> char/short cast · c2ad11ac
      grischka authored
      This was causing assembler bugs in a tcc compiled by itself
      at i386-asm.c:352 when ExprValue.v was changed to uint64_t:
          if (op->e.v == (int8_t)op->e.v)
              op->type |= OP_IM8S;
      A general test case:
          #include <stdio.h>
          int main(int argc, char **argv)
              long long ll = 4000;
              int i = (char)ll;
              printf("%d\n", i);
              return 0;
      Output was "4000", now "-96".
      Also: add "asmtest2" as asmtest with tcc compiled by itself
    • grischka's avatar
      build: restore out-of-tree support · afdbc5b8
      grischka authored
    • grischka's avatar
      build: revert Makefiles to 0.9.26 state (mostly) · 0a624782
      grischka authored
      - that libtcc1.a is now installed in subdirs i386/ etc.
      - the support for arm and arm64
      - some of the "Darwin" fixes
      - tests are mosly unchanged
      - removed the "legacy links for cross compilers" (was total mess)
      - removed "out-of-tree" build support (was broken anyway)
  16. 12 May, 2016 1 commit
  17. 06 May, 2016 1 commit
  18. 17 Apr, 2016 1 commit
  19. 05 Apr, 2016 1 commit
    • seyko's avatar
      Identifiers can start and/or contain '.' in *.S · d3e85e80
      seyko authored
          modified version of the old one which don't allow '.'
          in #define Identifiers. This allow correctly preprocess
          the following code in *.S
              #define SRC(y...)               \
              9999: y;                        \
              .section __ex_table, "a";       \
              .long 9999b, 6001f      ;       \
              // .previous
              SRC(1: movw (%esi), %bx)
          A test included.
  20. 15 Mar, 2016 1 commit
  21. 31 Oct, 2015 1 commit
  22. 30 Jul, 2015 1 commit
  23. 28 Jul, 2015 1 commit
    • gus knight's avatar
      Reorganize the source tree. · 47e06c6d
      gus knight authored
       * Documentation is now in "docs".
       * Source code is now in "src".
       * Misc. fixes here and there so that everything still works.
      I think I got everything in this commit, but I only tested this
      on Linux (Make) and Windows (CMake), so I might've messed
      something up on other platforms...
  24. 09 May, 2015 1 commit
    • grischka's avatar
      tccpp: fix issues, add tests · 30df3189
      grischka authored
      * fix some macro expansion issues
      * add some pp tests in tests/pp
      * improved tcc -E output for better diff'ability
      * remove -dD feature (quirky code, exotic feature,
        didn't work well)
      Based partially on ideas / researches from PipCet
      Some issues remain with VA_ARGS macros (if used in a
      rather tricky way).
      Also, to keep it simple, the pp doesn't automtically
      add any extra spaces to separate tokens which otherwise
      would form wrong tokens if re-read from tcc -E output
      (such as '+' '=')  GCC does that, other compilers don't.
       * cleanups
        - #line 01 "file" / # 01 "file" processing
        - #pragma comment(lib,"foo")
        - tcc -E: forward some pragmas to output (pack, comment(lib))
        - fix macro parameter list parsing mess from
          (some coffee might help, next time ;)
        - introduce TOK_PPSTR - to have character constants as
          written in the file (similar to TOK_PPNUM)
        - allow '\' appear in macros
        - new functions begin/end_macro to:
            - fix switching macro levels during expansion
            - allow unget_tok to unget more than one tok
        - slight speedup by using bitflags in isidnum_table
        - x86_64.c : fix decl after statements
        - i386-gen,c : fix a vstack leak with VLA on windows
        - configure/Makefile : build on windows (MSYS) was broken
        - tcc_warning: fflush stderr to keep output order (win32)
  25. 20 Apr, 2015 1 commit
    • seyko's avatar
      -fdollar-in-identifiers addon · 5ce2154c
      seyko authored
          * disable a -fdollar-in-identifiers option in assembler files
          * a test is added
          This is a patch addon from Daniel Holden.
  26. 08 Mar, 2015 1 commit
  27. 04 Mar, 2015 2 commits
    • seyko's avatar
      Disable floating-point test for ARM soft-float · d972472c
      seyko authored
          From: Matteo Cypriani <>
          Date: Fri, 5 Sep 2014 23:22:56 -0400
          Subject: Disable floating-point test for ARM soft-float
          tcc is not yet capable of doing softfloat floating-point operations on
          ARM, therefore we disable this test for these platforms. Note that tcc
          displays a warning to warn ARM users about this limitation
    • seyko's avatar
      disable-BTESTS · f1e4b2b7
      seyko authored
  28. 07 Sep, 2014 1 commit
    • Matteo Cypriani's avatar
      Clear CFLAGS & LDFLAGS in tests · b84cdf62
      Matteo Cypriani authored
      Clear CFLAGS and LDFLAGS to build the tests, in case the main Makefile
      passes some flags that aren't handled by tcc (we are not compiling tcc
      here, we are using tcc to compile the tests).
  29. 15 May, 2014 1 commit
  30. 04 May, 2014 1 commit
    • jiang's avatar
      Return to: e20c1eb9 · 5e56fb63
      jiang authored
      1: The new patch for the other machines still have the problem.
      2: libcrt Rename (what if gcc had libcrt as well)
      3: parse_number exact problem
      4: VT_VLS is to allow tcc
           Compile the following
           int b = 9;
           struct st {
           int a;
           int b [b]
           struct st st1;
           st1.b [8] = 9;
           printf ("% d \ n", st1.b [8]);
           tcc a problem. Due to problems in front, and now can not be improved
      5: they commit much, bug difficult to lock, you can not let other people help develop.
      6: ('\ t') too
      Thanks to Michael and Ray
      Their criticism I have benefited!
  31. 01 May, 2014 1 commit
  32. 30 Apr, 2014 1 commit
  33. 12 Apr, 2014 1 commit
  34. 07 Apr, 2014 1 commit
  35. 26 Mar, 2014 1 commit
  36. 09 Mar, 2014 1 commit
  37. 21 Jan, 2014 1 commit
    • grischka's avatar
      tcctest: add back testXb (self compile with -b) · 32a49625
      grischka authored
      - Thanks to Kirill "tcc -b itself" should work now
        (was removed in d5f4df09)
      - tests/Makefile:
        - fix spurious --I from 767410b8
        - lookup boundtest.c via VPATH (for out-of-tree build)
        - test[123]b?: fail on diff error
        - Windows: test3 now works (from e31579b0)
        - abitest: a libtcc.a made by gcc is not usable for tcc
          on WIndows - using source instead (libtcc.c)
      - tccpe:
        - avoid gcc warning (x86_64)