- tcc-doc.texi: commandline option info update - Changelog/TODO: update - tests/tcctest.py: 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
Unified · Split
| @@ -1,72 +1,64 @@ | ||
| 1 | +*~ | |
| 2 | +\#* | |
| 3 | +.#* | |
| 1 | 4 | *.o |
| 2 | 5 | *.a |
| 3 | −a.out | |
| 4 | 6 | *.exe |
| 7 | +*.dll | |
| 8 | +*.obj | |
| 9 | +*.pdb | |
| 10 | +*.lib | |
| 11 | +*.exp | |
| 5 | 12 | *.log |
| 13 | +*.bz2 | |
| 14 | +*.zip | |
| 15 | +.gdb_history | |
| 16 | +a.out | |
| 6 | 17 | tcc_g |
| 7 | 18 | tcc |
| 8 | −/*-tcc | |
| 9 | −tc2.c | |
| 10 | −doc | |
| 11 | −tc3s.c | |
| 12 | −p3.c | |
| 13 | −tc1.c | |
| 14 | −error.c | |
| 15 | −i386-gen1.c | |
| 16 | −test.out1 | |
| 17 | −test.out1b | |
| 18 | −test.out2 | |
| 19 | −test.out2b | |
| 20 | −test.out3 | |
| 21 | −test.out3b | |
| 22 | −web.sh | |
| 23 | −memdebug.c | |
| 24 | −bench | |
| 25 | −Makefile.uClibc | |
| 26 | −boundtest | |
| 27 | −prog.ref | |
| 28 | −test.ref | |
| 29 | −test.out | |
| 30 | −tcc-doc.html | |
| 31 | −ideas | |
| 32 | −tcctest.ref | |
| 33 | −linux.tcc | |
| 34 | −ldtest | |
| 35 | −libtcc_test | |
| 36 | −instr.S | |
| 37 | −p.c | |
| 38 | −p2.c | |
| 39 | −tcctest[1234] | |
| 40 | −test[1234].out | |
| 41 | −tests/tcclib.h | |
| 42 | −tests/tcctest.cc | |
| 43 | −tests/weaktest.*.o.txt | |
| 44 | −tests/tests2/fred.txt | |
| 45 | −tests/tests2/*.exe | |
| 46 | −tests/hello | |
| 47 | −tests/abitest-*cc | |
| 48 | −tests/vla_test | |
| 49 | −.gdb_history | |
| 50 | −tcc.1 | |
| 51 | −tcc.pod | |
| 19 | +*-tcc | |
| 20 | + | |
| 52 | 21 | config.h |
| 53 | 22 | config.mak |
| 54 | 23 | config.texi |
| 24 | +conftest* | |
| 55 | 25 | tags |
| 56 | 26 | TAGS |
| 57 | −.DS_Store | |
| 58 | −*.swp | |
| 27 | +tcc.1 | |
| 28 | +tcc.pod | |
| 29 | +tcc-doc.html | |
| 30 | +tcc-doc.info | |
| 31 | + | |
| 59 | 32 | lib/x86_64 |
| 60 | 33 | lib/i386 |
| 61 | 34 | lib/x86_64-win32 |
| 62 | 35 | lib/i386-win32 |
| 63 | 36 | lib/arm |
| 64 | 37 | lib/arm64 |
| 65 | −tcc-doc.info | |
| 66 | −conftest* | |
| 67 | −tiny_libmaker | |
| 68 | −*.dSYM | |
| 69 | −*~ | |
| 70 | −\#* | |
| 71 | −.#* | |
| 72 | −win32/* | |
| 38 | + | |
| 39 | +win32/doc | |
| 40 | +win32/libtcc | |
| 41 | +win32/lib/32 | |
| 42 | +win32/lib/64 | |
| 43 | +win32/include/float.h | |
| 44 | +win32/include/stdarg.h | |
| 45 | +win32/include/stdbool.h | |
| 46 | +win32/include/stddef.h | |
| 47 | +win32/include/varargs.h | |
| 48 | +win32/include/tcclib.h | |
| 49 | + | |
| 50 | +tests/test.out* | |
| 51 | +tests/test*.out | |
| 52 | +tests/tcctest[1234] | |
| 53 | +tests/tcctest.gcc | |
| 54 | +tests/*.ref | |
| 55 | +tests/*.txt | |
| 56 | +tests/*.gcc | |
| 57 | +tests/*-cc* | |
| 58 | +tests/*-tcc* | |
| 59 | +tests/libtcc_test | |
| 60 | +tests/vla_test | |
| 61 | +tests/hello | |
| 62 | +tests/tests2/fred.txt | |
| 63 | + | |
| 64 | +libtcc*.def | |
| @@ -1,126 +1,35 @@ | ||
| 1 | 1 | Version 0.9.27: |
| 2 | 2 | |
| 3 | −Licensing: | |
| 4 | − | |
| 5 | −- TinyCC partly relicensed to MIT license | |
| 6 | − | |
| 7 | 3 | User interface: |
| 4 | +- -x[c|a|n] filetype option (Sergey Korshunoff) | |
| 5 | +- -P[1], -dD, -dM preprocessor options (Sergey Korshunoff) | |
| 6 | +- -Wl,-(no-)whole-archive linker option (Reuben Thomas) | |
| 7 | +- -mms-bitfields option (David Mertens) | |
| 8 | +- -include <file> option (Michael Matz) | |
| 9 | +- @listfile support (Vlad Vissoultchev) | |
| 10 | +- CPATH, C_INCLUDE_PATH and LD_LIBRARY_PATH environment variables support | |
| 11 | + (Andrew Aladjev, Urs Janssen) | |
| 8 | 12 | |
| 9 | −- define __STDC_HOSTED__ (Michael Matz, Urs Janssen) | |
| 10 | −- added support for CPATH, C_INCLUDE_PATH and LD_LIBRARY_PATH (Andrew Aladjev | |
| 11 | −and Urs Janssen) | |
| 12 | −- added option -norunsrc to control argv[0] with tcc -run (James Lyon) | |
| 13 | −- improve --with-libgcc configure help (grischka) | |
| 14 | −- improve error message when memory is full (grischka) | |
| 15 | −- improve wording about compiler switches in documentation (Thomas Preud'homme) | |
| 16 | −- use GNU triplet prefix for cross compiler names (Thomas Preud'homme) | |
| 17 | −- ignore unknown linker optimization and as-needed option (Austin English) | |
| 13 | +Platforms: | |
| 14 | +- new AARCH64 (arm64) target (Edmund Grimley Evans) | |
| 15 | +- vastly improved support for ARM hard float calling convention | |
| 16 | + (Thomas Preud'homme, Daniel Glöckner) | |
| 17 | +- provide a runtime library for ARM (Thomas Preud'homme) | |
| 18 | +- many x86-64 ABI fixes incl. XMM register passing and tests (James Lyon) | |
| 19 | +- ABI tests with native compiler using libtcc (James Lyon) | |
| 18 | 20 | |
| 19 | 21 | Features: |
| 22 | +- VLA (variable length array) improved (James Lyon, Pip Cet) | |
| 23 | +- import functions by ordinal in .def files on windows (YX Hao) | |
| 24 | +- x86/x86-64 assembler much improved (Michael Matz) | |
| 25 | +- simple dead code suppression (Edmund Grimley Evans, Michael Matz, grischka) | |
| 26 | +- implement round/fmin/fmax etc. math on windows (Avi Halachmi) | |
| 27 | +- #pragma once support (Sergey Korshunoff, Vlad Vissoultchev, ...) | |
| 28 | +- switch/case code improved (Zdenek Pavlas) | |
| 29 | +- ~15% faster by TinyAlloc fast memory allocator (Vlad Vissoultchev) | |
| 20 | 30 | |
| 21 | −- added ABI tests with native compiler using libtcc (James Lyon) | |
| 22 | −- added CMake build system with support for cross-compilation (James Lyon) | |
| 23 | −- improved variable length array support (James Lyon) | |
| 24 | −- add the possibility to use noname functions by ordinal (YX Hao) | |
| 25 | −- add a install-strip target to install tcc (Thomas Preud'homme) | |
| 26 | −- add runtime selection of float ABI on ARM (Thomas Preud'homme) | |
| 27 | −- add shared lib support on x86-64 (Michael Matz) | |
| 28 | − | |
| 29 | −Platforms: | |
| 30 | −- support Debian GNU/kfreeBSD 64bit userspace (Thomas Preud'homme) | |
| 31 | −- fix GNU/Hurd interpreter path (Thomas Preud'homme) | |
| 32 | −- fix configure script for FreeBSD host (Thomas Preud'homme) | |
| 33 | −- make tcc -run work reliably on ARM by flushing caches (Thomas Preud'homme) | |
| 34 | −- many x86-64 ABI fixes incl. XMM register passing (James Lyon) | |
| 35 | −- improve compatibility with mingw's long double (James Lyon) | |
| 36 | −- avoid .stabstr section name to be truncated on win32 (Roy) | |
| 37 | −- add support for load/store of _Bool value (Thomas Preud'homme) | |
| 38 | −- detect instruction with incorrect operands on x86-64 (Thomas Preud'homme) | |
| 39 | −- improved relocations on ARM (Thomas Preud'homme) | |
| 40 | −- add va_* macro implementation for ARM (Thomas Preud'homme) | |
| 41 | −- define __ARM_EABI__, __ARMEL__ and __ARM_PCS_VFP (Thomas Preud'homme) | |
| 42 | −- provide a runtime library for ARM (Thomas Preud'homme) | |
| 43 | −- vastly improved support for ARM hard float calling convention | |
| 44 | −(Thomas Preud'homme, Daniel Glöckner) | |
| 45 | −- tcc can uses libtcc1 on ARM (Thomas Preud'homme) | |
| 46 | −- use __fixdfdi for all float to integer conversion (grischka) | |
| 47 | −- simplify startup code for unix platforms (grischka) | |
| 48 | −- improve ELF generated on ARM (Thomas Preud'homme) | |
| 49 | −- add support for thumb to ARM relocation (Thomas Preud'homme) | |
| 50 | −- fix globbing to match MSVC on Windows (Thomas Preud'homme) | |
| 51 | −- deprecate FPA and OABI support for ARM (Thomas Preud'homme) | |
| 52 | −- warn about softfloat not being supported on ARM (Thomas Preud'homme) | |
| 53 | − | |
| 54 | −Bug fixes: | |
| 55 | −- many code clean up (Urs Janssen, grischka) | |
| 56 | −- fixes of other's patches (grischka, Ramsay Jones, Michael Matz) | |
| 57 | −- fix documentation about __TINYC__ (Urs Janssen) | |
| 58 | −- improve build of documentation (Urs Janssen) | |
| 59 | −- improve build instructions (Jov) | |
| 60 | −- switch from texi2html to makeinfo --html to build tcc-doc.html (James Lyon) | |
| 61 | −- improve out of tree build (James Lyon) | |
| 62 | −- improved passing and returning of struct (James Lyon) | |
| 63 | −- fix CMake build on i386 and x86-64 (James Lyon) | |
| 64 | −- fix i386 calling convention issue (James Lyon) | |
| 65 | −- fix error in Windows build of tests (James Lyon) | |
| 66 | −- fix x86-64 long double passing (James Lyon) | |
| 67 | −- fix crash with undefined struct (grischka) | |
| 68 | −- normalize slashes on win32 to always use backslashes (grischka) | |
| 69 | −- use runtime function for float to int conversion on i386 (grischka) | |
| 70 | −- improved documentation for include and lib lookup on win32 (grischka) | |
| 71 | −- detect redefinition of function (Thomas Preud'homme) | |
| 72 | −- detect the use of array of functions (Thomas Preud'homme) | |
| 73 | −- detect use of enumerator with wrong enumeration (Thomas Preud'homme) | |
| 74 | −- detect redefinition of enumerator or enumeration (Thomas Preud'homme) | |
| 75 | −- set the user-defined library search paths first (Vittorio Giovara) | |
| 76 | −- detect usage of incomplete types inside struct/union (Amine Najahi) | |
| 77 | −- various macro bug fixes (Joseph Poirier) | |
| 78 | −- avoid wrong trigger of assert on x86-64 platform (Thomas Preud'homme) | |
| 79 | −- fix NaN comparison (Thomas Preud'homme) | |
| 80 | −- use libtcc for static linking with runtime library (Thomas Preud'homme) | |
| 81 | −- fix negation of 0.0 and -0.0 values (Thomas Preud'homme) | |
| 82 | −- fix use of long long as if condition (Thomas Preud'homme) | |
| 83 | −- disable bound check if libgcc is used (Thomas Preud'homme) | |
| 84 | −- error out when casting to void (grischka) | |
| 85 | −- remove circular dependency in Makefile (grischka) | |
| 86 | −- stop preventing gcc to do strict aliasing (grischka) | |
| 87 | −- fix Windows build of tcc (grischka) | |
| 88 | −- build runtime library for arm cross compiler (Thomas Preud'homme) | |
| 89 | −- fix installation of arm cross-compiler (Thomas Preud'homme) | |
| 90 | −- add basic test for cross-compiler (Thomas Preud'homme) | |
| 91 | −- fix failure when generating PE on x86-64 (Archidemon) | |
| 92 | −- fix floating point unary minus and plus (Michael Matz) | |
| 93 | −- add more tests for signed zero float (Michael Matz) | |
| 94 | −- fix precision of double on x86-64 (Vincent Lefevre) | |
| 95 | −- fix bound checking of argv with -run switch (Kirill Smelkov) | |
| 96 | −- work around a wine cmd bug when building tcc on Windows (Austin English) | |
| 97 | −- reenable some bound check tests (grischka) | |
| 98 | −- boundtest.c lookup honors VPATH (grischka) | |
| 99 | −- diff compared to CC in test[123]b? are now errors (grischka) | |
| 100 | −- fix test3 on Windows (grischka) | |
| 101 | −- prevent gcc from building (non functional) libtcc.a (grischka) | |
| 102 | −- fix warning related to PE file generation on x86-64 (grischka) | |
| 103 | −- stop mixing ordinary and implicit rule in Makefile (Iavael) | |
| 104 | −- fix integer to double conversion on ARM (Thomas Preud'homme) | |
| 105 | −- fix parameter passing of structure < 4 bytes on ARM (Thomas Preud'homme) | |
| 106 | −- disable builtin_frame_address test on ARM due to gcc bug (Thomas Preud'homme) | |
| 107 | −- fix initialization of struct on ARM (Thomas Preud'homme) | |
| 108 | −- fix parameter passing of (unsigned) long long bitfield (Thomas Preud'homme) | |
| 109 | −- improve float to integer tests (Thomas Preud'homme) | |
| 110 | −- fix relocation of Thumb branch to ARM function (Thomas Preud'homme) | |
| 111 | −- fix char wrong compatibility with [un]signed char (Thomas Preud'homme) | |
| 112 | −- choose the code to compile based on target in libtcc1 (Thomas Preud'homme) | |
| 113 | −- fix various clang warnings (Thomas Preud'homme) | |
| 114 | −- don't hardcode tcc in Makefile for tests (Thomas Preud'homme) | |
| 115 | −- fix relocation of __bound_init bound checking code (Thomas Preud'homme) | |
| 116 | −- accept only one basic type for a given variable (Thomas Preud'homme) | |
| 117 | −- fix error when using va_* with tcc using libgcc (Thomas Preud'homme) | |
| 118 | −- support GOT32 and PLT32 reloc on the same symbol (Thomas Preud'homme) | |
| 119 | −- fix memory leak due to symbol attributes (mingodad) | |
| 120 | −- partially fix bound checking of argv and arge (Thomas Preud'homme) | |
| 121 | −- fix possible dereference when getting name of symbol (grischka) | |
| 122 | −- fix va_list type definition on x86-64 (Daniel Glöckner) | |
| 123 | −- reduce number of scan-build false positive (mingodad) | |
| 31 | +Licensing: | |
| 32 | +- TinyCC partly relicensed to MIT license (See RELICENSING file). | |
| 124 | 33 | |
| 125 | 34 | version 0.9.26: |
| 126 | 35 | |
| @@ -26,14 +26,16 @@ LINK_LIBTCC = · 25 unmodified lines | ||
| 26 | 26 | LIBS = |
| 27 | 27 | |
| 28 | 28 | ifdef CONFIG_WIN32 |
| 29 | − LIBTCC = libtcc.dll | |
| 29 | + ifneq ($(DISABLE_STATIC),no) | |
| 30 | + LIBTCC = libtcc.dll | |
| 31 | + endif | |
| 30 | 32 | else |
| 31 | 33 | LIBS=-lm |
| 32 | 34 | ifndef CONFIG_NOLDL |
| 33 | 35 | LIBS+=-ldl |
| 34 | 36 | endif |
| 35 | 37 | # make libtcc as static or dynamic library? |
| 36 | − ifdef DISABLE_STATIC | |
| 38 | + ifeq ($(DISABLE_STATIC),yes) | |
| 37 | 39 | LIBTCC=libtcc.so |
| 38 | 40 | ifndef DISABLE_RPATH |
| 39 | 41 | LINK_LIBTCC += -Wl,-rpath,"$(libdir)" |
| @@ -92,7 +94,7 @@ ARM64_FILES = $(CORE_FILES) arm64-gen.c arm64-link.c · 52 unmodified lines | ||
| 92 | 94 | C67_FILES = $(CORE_FILES) c67-gen.c c67-link.c tcccoff.c |
| 93 | 95 | |
| 94 | 96 | ifdef CONFIG_WIN32 |
| 95 | − PROGS+=tiny_impdef$(EXESUF) tiny_libmaker$(EXESUF) $(LIBTCC) | |
| 97 | + PROGS+=tiny_impdef$(EXESUF) tiny_libmaker$(EXESUF) | |
| 96 | 98 | ifeq ($(ARCH),x86-64) |
| 97 | 99 | NATIVE_FILES=$(WIN64_FILES) |
| 98 | 100 | PROGS_CROSS=$(WIN32_CROSS) $(X64_CROSS) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS) |
| @@ -272,14 +274,14 @@ install: · 173 unmodified lines | ||
| 272 | 274 | mkdir -p "$(tccdir)/examples" |
| 273 | 275 | mkdir -p "$(tccdir)/doc" |
| 274 | 276 | mkdir -p "$(tccdir)/libtcc" |
| 275 | − $(INSTALLBIN) -m755 $(PROGS) "$(tccdir)" | |
| 277 | + $(INSTALLBIN) -m755 $(PROGS) $(subst libtcc.a,,$(LIBTCC)) "$(tccdir)" | |
| 276 | 278 | $(INSTALL) -m644 libtcc1.a $(TOPSRC)/win32/lib/*.def "$(tccdir)/lib" |
| 277 | 279 | cp -r $(TOPSRC)/win32/include/. "$(tccdir)/include" |
| 278 | 280 | cp -r $(TOPSRC)/win32/examples/. "$(tccdir)/examples" |
| 279 | 281 | cp $(TOPSRC)/tests/libtcc_test.c "$(tccdir)/examples" |
| 280 | 282 | $(INSTALL) -m644 $(TOPSRC)/include/*.h $(TOPSRC)/tcclib.h "$(tccdir)/include" |
| 281 | − $(INSTALL) -m644 tcc-doc.html $(TOPSRC)/win32/tcc-win32.txt "$(tccdir)/doc" | |
| 282 | − $(INSTALL) -m644 $(TOPSRC)/libtcc.h libtcc.def "$(tccdir)/libtcc" | |
| 283 | + $(INSTALL) -m644 $(TOPSRC)/libtcc.h $(subst .dll,.def,$(LIBTCC)) "$(tccdir)/libtcc" | |
| 284 | + -$(INSTALL) -m644 $(TOPSRC)/win32/tcc-win32.txt tcc-doc.html "$(tccdir)/doc" | |
| 283 | 285 | ifdef CONFIG_CROSS |
| 284 | 286 | mkdir -p "$(tccdir)/lib/32" |
| 285 | 287 | mkdir -p "$(tccdir)/lib/64" |
| @@ -2,16 +2,8 @@ TODO list: · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | Bugs: |
| 4 | 4 | |
| 5 | −- fix macro substitution with nested definitions (ShangHongzhang) | |
| 6 | 5 | - FPU st(0) is left unclean (kwisatz haderach). Incompatible with |
| 7 | 6 | optimized gcc/msc code |
| 8 | − | |
| 9 | −- constructors | |
| 10 | −- cast bug (Peter Wang) | |
| 11 | −- define incomplete type if defined several times (Peter Wang). | |
| 12 | −- test binutils/gcc compile | |
| 13 | −- tci patch + argument. | |
| 14 | −- see -lxxx bug (Michael Charity). | |
| 15 | 7 | - see transparent union pb in /urs/include/sys/socket.h |
| 16 | 8 | - precise behaviour of typeof with arrays ? (__put_user macro) |
| 17 | 9 | but should suffice for most cases) |
| @@ -26,11 +18,10 @@ Bugs: · 8 unmodified lines | ||
| 26 | 18 | - finish varargs.h support (gcc 3.2 testsuite issue) |
| 27 | 19 | - fix static functions declared inside block |
| 28 | 20 | - fix multiple unions init |
| 29 | −- sizeof, alignof, typeof can still generate code in some cases. | |
| 30 | −- Fix the remaining libtcc memory leaks. | |
| 31 | 21 | - make libtcc fully reentrant (except for the compilation stage itself). |
| 32 | 22 | - struct/union/enum definitions in nested scopes (see also Debian bug #770657) |
| 33 | 23 | - __STDC_IEC_559__: float f(void) { static float x = 0.0 / 0.0; return x; } |
| 24 | +- memory may be leaked after errors (longjmp). | |
| 34 | 25 | |
| 35 | 26 | Portability: |
| 36 | 27 | |
| @@ -42,14 +33,10 @@ Portability: · 5 unmodified lines | ||
| 42 | 33 | |
| 43 | 34 | Linking: |
| 44 | 35 | |
| 45 | −- static linking does not work | |
| 46 | −- with "-run" and libtcc, no PLT is used, so branches may be out of | |
| 47 | − range and relocations may fail; as a result libtest fails on arm64; see: | |
| 48 | − https://lists.gnu.org/archive/html/tinycc-devel/2015-03/msg00111.html | |
| 36 | +- static linking (-static) does not work | |
| 49 | 37 | |
| 50 | 38 | Bound checking: |
| 51 | 39 | |
| 52 | −- '-b' bug. | |
| 53 | 40 | - fix bound exit on RedHat 7.3 |
| 54 | 41 | - setjmp is not supported properly in bound checking. |
| 55 | 42 | - fix bound check code with '&' on local variables (currently done |
| @@ -61,11 +48,10 @@ Missing features: · 5 unmodified lines | ||
| 61 | 48 | |
| 62 | 49 | - disable-asm and disable-bcheck options |
| 63 | 50 | - __builtin_expect() |
| 64 | −- improve '-E' option. | |
| 65 | 51 | - atexit (Nigel Horne) |
| 66 | −- packed attribute | |
| 67 | 52 | - C99: add complex types (gcc 3.2 testsuite issue) |
| 68 | 53 | - postfix compound literals (see 20010124-1.c) |
| 54 | +- interactive mode / integrated debugger | |
| 69 | 55 | |
| 70 | 56 | Optimizations: |
| 71 | 57 | |
| @@ -81,9 +67,8 @@ Not critical: · 9 unmodified lines | ||
| 81 | 67 | normative example - only relevant when using gotos! -> must add |
| 82 | 68 | boolean variable to tell if compound literal was already |
| 83 | 69 | initialized). |
| 84 | −- add PowerPC or ARM code generator and improve codegen for RISC (need | |
| 70 | +- add PowerPC generator and improve codegen for RISC (need | |
| 85 | 71 | to suppress VT_LOCAL and use a base register instead). |
| 86 | −- interactive mode / integrated debugger | |
| 87 | 72 | - fix preprocessor symbol redefinition |
| 88 | 73 | - add portable byte code generator and interpreter for other |
| 89 | 74 | unsupported architectures. |
| @@ -108,3 +93,8 @@ Fixed (probably): · 18 unmodified lines | ||
| 108 | 93 | - #include_next support for /usr/include/limits ? |
| 109 | 94 | - function pointers/lvalues in ? : (linux kernel net/core/dev.c) |
| 110 | 95 | - win32: add __stdcall, check GetModuleHandle for dlls. |
| 96 | +- macro substitution with nested definitions (ShangHongzhang) | |
| 97 | +- with "-run" and libtcc, a PLT is now built. | |
| 98 | +- '-E' option was improved | |
| 99 | +- packed attribute is now supported | |
| 100 | +- ARM and ARM64 code generators have been added. | |
| @@ -19,6 +19,7 @@ TMPH=$TMPN.h · 18 unmodified lines | ||
| 19 | 19 | # default parameters |
| 20 | 20 | build_cross="no" |
| 21 | 21 | use_libgcc="no" |
| 22 | +disable_static="" | |
| 22 | 23 | prefix="" |
| 23 | 24 | execprefix="" |
| 24 | 25 | bindir="" |
| @@ -53,6 +54,7 @@ targetos=`uname` · 28 unmodified lines | ||
| 53 | 54 | case $targetos in |
| 54 | 55 | MINGW*) mingw32=yes;; |
| 55 | 56 | MSYS*) mingw32=yes;; |
| 57 | + CYGWIN*) mingw32=yes; cygwin=yes; cross_prefix="mingw32-";; | |
| 56 | 58 | DragonFly) noldl=yes;; |
| 57 | 59 | OpenBSD) noldl=yes;; |
| 58 | 60 | FreeBSD) noldl=yes;; |
| @@ -69,6 +71,8 @@ source_path_used="yes" · 10 unmodified lines | ||
| 69 | 71 | if test -z "$source_path" -o "$source_path" = "." ; then |
| 70 | 72 | source_path=`pwd` |
| 71 | 73 | source_path_used="no" |
| 74 | + # mingw compilers might not understand cygwin paths | |
| 75 | + if test $cygwin = "yes"; then source_path="."; fi | |
| 72 | 76 | fi |
| 73 | 77 | |
| 74 | 78 | for opt do |
| @@ -126,12 +130,12 @@ for opt do · 51 unmodified lines | ||
| 126 | 130 | ;; |
| 127 | 131 | --enable-mingw32) mingw32="yes" ; cross_prefix="i686-pc-mingw32-" ; cpu=x86 |
| 128 | 132 | ;; |
| 129 | − --enable-cygwin) mingw32="yes" ; cygwin="yes" ; cross_prefix="mingw32-" ; cpu=x86 | |
| 130 | − ;; | |
| 131 | 133 | --enable-cross) build_cross="yes" |
| 132 | 134 | ;; |
| 133 | 135 | --disable-static) disable_static="yes" |
| 134 | 136 | ;; |
| 137 | + --enable-static) disable_static="no" | |
| 138 | + ;; | |
| 135 | 139 | --disable-rpath) disable_rpath="yes" |
| 136 | 140 | ;; |
| 137 | 141 | --strip-binaries) strip_binaries="yes" |
| @@ -288,12 +292,12 @@ Advanced options (experts only): · 150 unmodified lines | ||
| 288 | 292 | --cpu=CPU CPU [$cpu] |
| 289 | 293 | --strip-binaries strip symbol tables from resulting binaries |
| 290 | 294 | --disable-static make libtcc.so instead of libtcc.a |
| 295 | + --enable-static make libtcc.a instead of libtcc.dll (win32) | |
| 291 | 296 | --disable-rpath disable use of -rpath with the above |
| 292 | 297 | --with-libgcc use libgcc_s.so.1 instead of libtcc1.a in dynamic link |
| 293 | 298 | --enable-mingw32 build windows version on linux with mingw32 |
| 294 | − --enable-cygwin build windows version on windows with cygwin | |
| 295 | 299 | --enable-cross build cross compilers |
| 296 | − --with-selinux use mmap for exec mem [needs writable /tmp] | |
| 300 | + --with-selinux use mmap for executable memory (with tcc -run) | |
| 297 | 301 | --sysincludepaths=... specify system include paths, colon separated |
| 298 | 302 | --libpaths=... specify system library paths, colon separated |
| 299 | 303 | --crtprefix=... specify locations of crt?.o, colon separated |
| @@ -309,15 +313,16 @@ ar="${cross_prefix}${ar}" · 9 unmodified lines | ||
| 309 | 313 | strip="${cross_prefix}${strip}" |
| 310 | 314 | |
| 311 | 315 | CONFTEST=./conftest$EXESUF |
| 316 | +if ! $cc -o $CONFTEST $source_path/conftest.c 2>/dev/null ; then | |
| 317 | + echo "configure: error: '$cc' failed to compile conftest.c." | |
| 318 | +else | |
| 319 | + gcc_major="$($CONFTEST version)" | |
| 320 | + gcc_minor="$($CONFTEST minor)" | |
| 321 | +fi | |
| 312 | 322 | |
| 313 | 323 | if test -z "$cross_prefix" ; then |
| 314 | − if ! $cc -o $CONFTEST $source_path/conftest.c 2>/dev/null ; then | |
| 315 | − echo "configure: error: '$cc' failed to compile conftest.c." | |
| 316 | − else | |
| 317 | − bigendian="$($CONFTEST bigendian)" | |
| 318 | − gcc_major="$($CONFTEST version)" | |
| 319 | − gcc_minor="$($CONFTEST minor)" | |
| 320 | − if test "$mingw32" = "no" ; then | |
| 324 | + bigendian="$($CONFTEST bigendian)" | |
| 325 | + if test "$mingw32" = "no" ; then | |
| 321 | 326 | |
| 322 | 327 | if test -z "$triplet"; then |
| 323 | 328 | tt="$($CONFTEST triplet)" |
| @@ -348,8 +353,6 @@ if test -z "$cross_prefix" ; then · 24 unmodified lines | ||
| 348 | 353 | if test -f "/lib/ld-uClibc.so.0" ; then |
| 349 | 354 | confvars="$confvars uClibc" |
| 350 | 355 | fi |
| 351 | − | |
| 352 | − fi | |
| 353 | 356 | fi |
| 354 | 357 | else |
| 355 | 358 | # if cross compiling, cannot launch a program, so make a static guess |
| @@ -365,7 +368,7 @@ for i in $W_OPTIONS; do · 9 unmodified lines | ||
| 365 | 368 | O_PRESENT="$(grep -- -W$i cc_help.txt)" |
| 366 | 369 | if test -n "$O_PRESENT"; then CFLAGS="$CFLAGS -W$i"; fi |
| 367 | 370 | done |
| 368 | −W_OPTIONS="deprecated-declarations strict-aliasing pointer-sign sign-compare unused-result uninitialized" | |
| 371 | +W_OPTIONS="pointer-sign sign-compare unused-result" | |
| 369 | 372 | for i in $W_OPTIONS; do |
| 370 | 373 | O_PRESENT="$(grep -- -W$i cc_help.txt)" |
| 371 | 374 | if test -n "$O_PRESENT"; then CFLAGS="$CFLAGS -Wno-$i"; fi |
| @@ -481,12 +484,6 @@ fi · 109 unmodified lines | ||
| 481 | 484 | if test "$mingw32" = "yes" ; then |
| 482 | 485 | echo "CONFIG_WIN32=yes" >> config.mak |
| 483 | 486 | fi |
| 484 | −if test "$cygwin" = "yes" ; then | |
| 485 | − echo "#ifndef _WIN32" >> $TMPH | |
| 486 | − echo "# define _WIN32" >> $TMPH | |
| 487 | − echo "#endif" >> $TMPH | |
| 488 | − echo "AR=ar" >> config.mak | |
| 489 | −fi | |
| 490 | 487 | if test "$bigendian" = "yes" ; then |
| 491 | 488 | echo "WORDS_BIGENDIAN=yes" >> config.mak |
| 492 | 489 | echo "#define WORDS_BIGENDIAN 1" >> $TMPH |
| @@ -498,8 +495,8 @@ fi · 5 unmodified lines | ||
| 498 | 495 | if test "$build_cross" = "yes" ; then |
| 499 | 496 | echo "CONFIG_CROSS=yes" >> config.mak |
| 500 | 497 | fi |
| 501 | −if test "$disable_static" = "yes" ; then | |
| 502 | − echo "DISABLE_STATIC=yes" >> config.mak | |
| 498 | +if test -n "$disable_static" ; then | |
| 499 | + echo "DISABLE_STATIC=$disable_static" >> config.mak | |
| 503 | 500 | fi |
| 504 | 501 | if test "$disable_rpath" = "yes" ; then |
| 505 | 502 | echo "DISABLE_RPATH=yes" >> config.mak |
| @@ -176,29 +176,15 @@ In a script, it gives the following header: · 175 unmodified lines | ||
| 176 | 176 | #!/usr/local/bin/tcc -run -L/usr/X11R6/lib -lX11 |
| 177 | 177 | @end example |
| 178 | 178 | |
| 179 | −@item -mms-bitfields | |
| 180 | −Use an algorithm for bitfield alignment consistent with MSVC. Default is | |
| 181 | −gcc's algorithm. | |
| 182 | − | |
| 183 | −@item -mfloat-abi (ARM only) | |
| 184 | −Select the float ABI. Possible values: @code{softfp} and @code{hard} | |
| 185 | − | |
| 186 | −@item -dumpversion | |
| 187 | −Print only the compiler version and nothing else. | |
| 188 | − | |
| 189 | 179 | @item -v |
| 190 | 180 | Display TCC version. |
| 191 | 181 | |
| 192 | 182 | @item -vv |
| 193 | −Show included files. As sole argument, print search dirs (as below). | |
| 183 | +Show included files. As sole argument, print search dirs. -vvv shows tries too. | |
| 194 | 184 | |
| 195 | 185 | @item -bench |
| 196 | 186 | Display compilation statistics. |
| 197 | 187 | |
| 198 | −@item -print-search-dirs | |
| 199 | −Print the configured installation directory and a list of library | |
| 200 | −and include directories tcc will search. | |
| 201 | − | |
| 202 | 188 | @end table |
| 203 | 189 | |
| 204 | 190 | Preprocessor options: |
| @@ -220,6 +206,10 @@ also be defined: @option{-DF(a)=a+1} · 15 unmodified lines | ||
| 220 | 206 | |
| 221 | 207 | @item -Usym |
| 222 | 208 | Undefine preprocessor symbol @samp{sym}. |
| 209 | + | |
| 210 | +@item -E | |
| 211 | +Preprocess only, to stdout or file (with -o). | |
| 212 | + | |
| 223 | 213 | @end table |
| 224 | 214 | |
| 225 | 215 | Compilation flags: |
| @@ -337,6 +327,9 @@ Modify executable layout. · 111 unmodified lines | ||
| 337 | 327 | @item -Wl,-Bsymbolic |
| 338 | 328 | Set DT_SYMBOLIC tag. |
| 339 | 329 | |
| 330 | +@item -Wl,-(no-)whole-archive | |
| 331 | +Turn on/off linking of all objects in archives. | |
| 332 | + | |
| 340 | 333 | @end table |
| 341 | 334 | |
| 342 | 335 | Debugger options: |
| @@ -370,6 +363,31 @@ Generate makefile fragment with dependencies. · 27 unmodified lines | ||
| 370 | 363 | @item -MF depfile |
| 371 | 364 | Use @file{depfile} as output for -MD. |
| 372 | 365 | |
| 366 | +@item -print-search-dirs | |
| 367 | +Print the configured installation directory and a list of library | |
| 368 | +and include directories tcc will search. | |
| 369 | + | |
| 370 | +@item -dumpversion | |
| 371 | +Print version. | |
| 372 | + | |
| 373 | +@end table | |
| 374 | + | |
| 375 | +Target specific options: | |
| 376 | + | |
| 377 | +@table @option | |
| 378 | +@item -mms-bitfields | |
| 379 | +Use an algorithm for bitfield alignment consistent with MSVC. Default is | |
| 380 | +gcc's algorithm. | |
| 381 | + | |
| 382 | +@item -mfloat-abi (ARM only) | |
| 383 | +Select the float ABI. Possible values: @code{softfp} and @code{hard} | |
| 384 | + | |
| 385 | +@item -mno-sse | |
| 386 | +Do not use sse registers on x86-64 | |
| 387 | + | |
| 388 | +@item -m32, -m64 | |
| 389 | +Pass command line to the i386/x86-64 cross compiler. | |
| 390 | + | |
| 373 | 391 | @end table |
| 374 | 392 | |
| 375 | 393 | Note: GCC options @option{-Ox}, @option{-fx} and @option{-mx} are |
| @@ -109,6 +109,7 @@ static void help(void) · 108 unmodified lines | ||
| 109 | 109 | " -E preprocess only\n" |
| 110 | 110 | " -P[1] no / alternative #line output with -E\n" |
| 111 | 111 | " -dD -dM output #define directives with -E\n" |
| 112 | + " -include file include file above each input file\n" | |
| 112 | 113 | "Linker options:\n" |
| 113 | 114 | " -Ldir add library path 'dir'\n" |
| 114 | 115 | " -llib link with dynamic or static library 'lib'\n" |
| @@ -187,7 +187,7 @@ speedtest: ex2 ex3 · 186 unmodified lines | ||
| 187 | 187 | |
| 188 | 188 | weaktest: tcctest.c test.ref |
| 189 | 189 | $(TCC) -c $< -o weaktest.tcc.o |
| 190 | − $(CC) -c $< -o weaktest.gcc.o -I. $(CFLAGS) | |
| 190 | + $(CC) -c $< -o weaktest.gcc.o $(NATIVE_DEFINES) $(CFLAGS) -w -O0 -std=gnu99 -fno-omit-frame-pointer | |
| 191 | 191 | objdump -t weaktest.tcc.o | grep ' w ' | sed -e 's/.* \([a-zA-Z0-9_]*\)$$/\1/' | LC_ALL=C sort > weaktest.tcc.o.txt |
| 192 | 192 | objdump -t weaktest.gcc.o | grep ' w ' | sed -e 's/.* \([a-zA-Z0-9_]*\)$$/\1/' | LC_ALL=C sort > weaktest.gcc.o.txt |
| 193 | 193 | diff weaktest.gcc.o.txt weaktest.tcc.o.txt && echo "Weak Auto Test OK" |
| @@ -254,7 +254,8 @@ cache: tcc_g · 60 unmodified lines | ||
| 254 | 254 | # clean |
| 255 | 255 | clean: |
| 256 | 256 | rm -f *~ *.o *.a *.bin *.i *.ref *.out *.out? *.out?b *.cc *.gcc \ |
| 257 | −*-cc *-gcc *-tcc *.exe hello libtcc_test vla_test tcctest[1234] ex? tcc_g | |
| 257 | + *-cc *-gcc *-tcc *.exe hello libtcc_test vla_test tcctest[1234] \ | |
| 258 | + ex? tcc_g *.def weaktest.*.txt | |
| 258 | 259 | $(MAKE) -C tests2 $@ |
| 259 | 260 | $(MAKE) -C pp $@ |
| 260 | 261 | |
| @@ -1,15 +0,0 @@ | ||
| 1 | −import subprocess | |
| 2 | −import sys | |
| 3 | −import difflib | |
| 4 | − | |
| 5 | −def main(): | |
| 6 | − reference = subprocess.check_output([sys.argv[1]]) | |
| 7 | − compare = subprocess.check_output(sys.argv[2:]) | |
| 8 | − failed = False | |
| 9 | − for line in difflib.unified_diff(reference.split('\n'), compare.split('\n'), fromfile='cc', tofile='tcc', lineterm=''): | |
| 10 | − failed = True | |
| 11 | − print line | |
| 12 | − sys.exit(1 if failed else 0) | |
| 13 | − | |
| 14 | −if __name__ == '__main__': | |
| 15 | − main() | |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
| @@ -1,38 +1,38 @@ | ||
| 1 | −#include <stdio.h> | |
| 2 | − | |
| 3 | −int | |
| 4 | −main() | |
| 5 | −{ | |
| 6 | −#if defined(__LLP64__) | |
| 7 | − if (sizeof(short) == 2 | |
| 8 | − && sizeof(int) == 4 | |
| 9 | − && sizeof(long int) == 4 | |
| 10 | − && sizeof(long long int) == 8 | |
| 11 | − && sizeof(void*) == 8) { | |
| 12 | − (void)printf("Ok\n"); | |
| 13 | − } else { | |
| 14 | − (void)printf("KO __LLP64__\n"); | |
| 15 | − } | |
| 16 | −#elif defined(__LP64__) | |
| 17 | − if (sizeof(short) == 2 | |
| 18 | − && sizeof(int) == 4 | |
| 19 | − && sizeof(long int) == 8 | |
| 20 | − && sizeof(long long int) == 8 | |
| 21 | − && sizeof(void*) == 8) { | |
| 22 | − (void)printf("Ok\n"); | |
| 23 | − } else { | |
| 24 | − (void)printf("KO __LP64__\n"); | |
| 25 | − } | |
| 26 | −#elif defined(__ILP32__) | |
| 27 | − if (sizeof(short) == 2 | |
| 28 | − && sizeof(int) == 4 | |
| 29 | − && sizeof(long int) == 4 | |
| 30 | − && sizeof(void*) == 4) { | |
| 31 | − (void)printf("Ok\n"); | |
| 32 | − } else { | |
| 33 | − (void)printf("KO __ILP32__\n"); | |
| 34 | − } | |
| 35 | −#else | |
| 36 | − (void)printf("KO no __*LP*__ defined.\n"); | |
| 37 | −#endif | |
| 38 | −} | |
| 1 | +#include <stdio.h> | |
| 2 | + | |
| 3 | +int | |
| 4 | +main() | |
| 5 | +{ | |
| 6 | +#if defined(__LLP64__) | |
| 7 | + if (sizeof(short) == 2 | |
| 8 | + && sizeof(int) == 4 | |
| 9 | + && sizeof(long int) == 4 | |
| 10 | + && sizeof(long long int) == 8 | |
| 11 | + && sizeof(void*) == 8) { | |
| 12 | + (void)printf("Ok\n"); | |
| 13 | + } else { | |
| 14 | + (void)printf("KO __LLP64__\n"); | |
| 15 | + } | |
| 16 | +#elif defined(__LP64__) | |
| 17 | + if (sizeof(short) == 2 | |
| 18 | + && sizeof(int) == 4 | |
| 19 | + && sizeof(long int) == 8 | |
| 20 | + && sizeof(long long int) == 8 | |
| 21 | + && sizeof(void*) == 8) { | |
| 22 | + (void)printf("Ok\n"); | |
| 23 | + } else { | |
| 24 | + (void)printf("KO __LP64__\n"); | |
| 25 | + } | |
| 26 | +#elif defined(__ILP32__) | |
| 27 | + if (sizeof(short) == 2 | |
| 28 | + && sizeof(int) == 4 | |
| 29 | + && sizeof(long int) == 4 | |
| 30 | + && sizeof(void*) == 4) { | |
| 31 | + (void)printf("Ok\n"); | |
| 32 | + } else { | |
| 33 | + (void)printf("KO __ILP32__\n"); | |
| 34 | + } | |
| 35 | +#else | |
| 36 | + (void)printf("KO no __*LP*__ defined.\n"); | |
| 37 | +#endif | |
| 38 | +} | |
| @@ -1 +1 @@ | ||
| 1 | −Ok | |
| 1 | +Ok | |
| @@ -3,7 +3,7 @@ static void kb_wait_1(void) · 2 unmodified lines | ||
| 3 | 3 | { |
| 4 | 4 | unsigned long timeout = 2; |
| 5 | 5 | do { |
| 6 | − (1 ? | |
| 6 | + (1 ? | |
| 7 | 7 | printf("timeout=%ld\n", timeout) : |
| 8 | 8 | ({ |
| 9 | 9 | while (1) |
| @@ -17,7 +17,7 @@ static void kb_wait_2(void) · 7 unmodified lines | ||
| 17 | 17 | { |
| 18 | 18 | unsigned long timeout = 2; |
| 19 | 19 | do { |
| 20 | − (1 ? | |
| 20 | + (1 ? | |
| 21 | 21 | printf("timeout=%ld\n", timeout) : |
| 22 | 22 | ({ |
| 23 | 23 | for (;;) |
| @@ -31,7 +31,7 @@ static void kb_wait_2_1(void) · 7 unmodified lines | ||
| 31 | 31 | { |
| 32 | 32 | unsigned long timeout = 2; |
| 33 | 33 | do { |
| 34 | − (1 ? | |
| 34 | + (1 ? | |
| 35 | 35 | printf("timeout=%ld\n", timeout) : |
| 36 | 36 | ({ |
| 37 | 37 | do { |
| @@ -46,7 +46,7 @@ static void kb_wait_2_2(void) · 8 unmodified lines | ||
| 46 | 46 | { |
| 47 | 47 | unsigned long timeout = 2; |
| 48 | 48 | do { |
| 49 | − (1 ? | |
| 49 | + (1 ? | |
| 50 | 50 | printf("timeout=%ld\n", timeout) : |
| 51 | 51 | ({ |
| 52 | 52 | label: |
| @@ -61,7 +61,7 @@ static void kb_wait_3(void) · 8 unmodified lines | ||
| 61 | 61 | { |
| 62 | 62 | unsigned long timeout = 2; |
| 63 | 63 | do { |
| 64 | − (1 ? | |
| 64 | + (1 ? | |
| 65 | 65 | printf("timeout=%ld\n", timeout) : |
| 66 | 66 | ({ |
| 67 | 67 | int i = 1; |
| @@ -78,7 +78,7 @@ static void kb_wait_4(void) · 10 unmodified lines | ||
| 78 | 78 | { |
| 79 | 79 | unsigned long timeout = 2; |
| 80 | 80 | do { |
| 81 | − (1 ? | |
| 81 | + (1 ? | |
| 82 | 82 | printf("timeout=%ld\n", timeout) : |
| 83 | 83 | ({ |
| 84 | 84 | switch(timeout) { |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
| @@ -110,7 +110,7 @@ tarball: · 109 unmodified lines | ||
| 110 | 110 | @cp -r lib $(TARNAME) |
| 111 | 111 | @cp -r libtcc $(TARNAME) |
| 112 | 112 | @cp -r tools $(TARNAME) |
| 113 | − @cp -r vs2015 $(TARNAME) | |
| 113 | +# @cp -r vs2015 $(TARNAME) | |
| 114 | 114 | @cp -r build-tcc.bat $(TARNAME) |
| 115 | 115 | @cp -r i386-win32-tcc.exe $(TARNAME) |
| 116 | 116 | @cp -r libtcc.def $(TARNAME) |
| @@ -1,10 +1,11 @@ | ||
| 1 | 1 | @rem ------------------------------------------------------ |
| 2 | −@rem batch file to build tcc using mingw gcc or tcc itself | |
| 2 | +@rem batch file to build tcc using mingw, msvc or tcc itself | |
| 3 | 3 | @rem ------------------------------------------------------ |
| 4 | 4 | |
| 5 | 5 | @echo off |
| 6 | 6 | |
| 7 | −set CC=gcc -Os -s -fno-strict-aliasing | |
| 7 | +set CC=gcc -Os -s | |
| 8 | + | |
| 8 | 9 | set T=32 |
| 9 | 10 | if %PROCESSOR_ARCHITECTURE%_==AMD64_ set T=64 |
| 10 | 11 | if %PROCESSOR_ARCHITEW6432%_==AMD64_ set T=64 |
| @@ -16,7 +17,7 @@ goto :a0 · 5 unmodified lines | ||
| 16 | 17 | :usage |
| 17 | 18 | echo usage: build-tcc.bat [ options ... ] |
| 18 | 19 | echo options: |
| 19 | −echo -c prog use prog (gcc or tcc) to compile tcc | |
| 20 | +echo -c prog use prog (gcc/tcc/cl) to compile tcc | |
| 20 | 21 | echo -c "prog options" use prog with options to compile tcc |
| 21 | 22 | echo -t 32/64 force 32/64 bit default target |
| 22 | 23 | echo -v "version" set tcc version |
| @@ -24,6 +25,21 @@ echo -i dir install tcc into dir · 1 unmodified line | ||
| 24 | 25 | echo -d create tcc-doc.html too (needs makeinfo) |
| 25 | 26 | exit /B 1 |
| 26 | 27 | |
| 28 | +:cl | |
| 29 | +@echo off | |
| 30 | +set CMD=cl | |
| 31 | +:c0 | |
| 32 | +set ARG=%1 | |
| 33 | +set ARG=%ARG:.dll=.lib% | |
| 34 | +if (%1)==(-shared) set ARG=-LD | |
| 35 | +if (%1)==(-o) shift && set ARG=-Fe%2 | |
| 36 | +set CMD=%CMD% %ARG% | |
| 37 | +shift | |
| 38 | +if not (%1)==() goto :c0 | |
| 39 | +echo on | |
| 40 | +%CMD% -O1 -W2 -Zi -MT -GS- -nologo -link -opt:ref,icf | |
| 41 | +@exit /B %ERRORLEVEL% | |
| 42 | + | |
| 27 | 43 | :a2 |
| 28 | 44 | shift |
| 29 | 45 | :a1 |
| @@ -31,6 +47,7 @@ shift · 1 unmodified line | ||
| 31 | 47 | :a0 |
| 32 | 48 | if not (%1)==(-c) goto :a3 |
| 33 | 49 | set CC=%~2 |
| 50 | +if (%2)==(cl) set CC=@call :cl | |
| 34 | 51 | goto :a2 |
| 35 | 52 | :a3 |
| 36 | 53 | if not (%1)==(-t) goto :a4 |
| @@ -1,7 +1,7 @@ | ||
| 1 | 1 | #ifndef _TCC_LIBM_H_ |
| 2 | 2 | #define _TCC_LIBM_H_ |
| 3 | 3 | |
| 4 | −#include "../include/math.h" | |
| 4 | +#include "../math.h" | |
| 5 | 5 | |
| 6 | 6 | /* TCC uses 8 bytes for double and long double, so effectively the l variants |
| 7 | 7 | * are never used. For now, they just run the normal (double) variant. |
| @@ -107,23 +107,26 @@ · 106 unmodified lines | ||
| 107 | 107 | Compilation from source: |
| 108 | 108 | ------------------------ |
| 109 | 109 | * You can use the MinGW and MSYS tools available at |
| 110 | − | |
| 111 | 110 | http://www.mingw.org |
| 112 | 111 | |
| 113 | 112 | Untar the TCC archive and type in the MSYS shell: |
| 114 | − | |
| 115 | 113 | ./configure [--prefix installpath] |
| 116 | 114 | make |
| 117 | 115 | make install |
| 118 | 116 | |
| 119 | − The default install location is c:\Program Files\tcc | |
| 117 | + The default install location is c:\Program Files\tcc | |
| 120 | 118 | |
| 121 | 119 | * Alternatively you can compile TCC with just GCC from MinGW using |
| 120 | + > build-tcc.bat (from the win32 directory) | |
| 121 | + | |
| 122 | + Also MSVC can be used with the "VSTools Developer Command Prompt": | |
| 123 | + > build-tcc.bat -c cl | |
| 122 | 124 | |
| 123 | − build-tcc.bat (from the win32 directory) | |
| 125 | + or with a tcc (needs to be in a different directory) | |
| 126 | + > build-tcc.bat -c some-tcc-dir\tcc.exe | |
| 124 | 127 | |
| 125 | − To install, copy the entire contents of the win32 directory to | |
| 126 | − where you want. | |
| 128 | + Also you can copy/install everything into another directory: | |
| 129 | + > build-tcc.bat -i <dir> | |
| 127 | 130 | |
| 128 | 131 | |
| 129 | 132 | Limitations: |
| @@ -1,9 +0,0 @@ | ||
| 1 | −set /p VERSION= < %~dp0..\..\VERSION | |
| 2 | − | |
| 3 | −:config.h | |
| 4 | −echo> .\config.h #define TCC_VERSION "%VERSION%" | |
| 5 | −echo>> .\config.h #ifdef TCC_TARGET_X86_64 | |
| 6 | −echo>> .\config.h #define CONFIG_TCC_LIBPATHS "{B}/lib/64;{B}/lib" | |
| 7 | −echo>> .\config.h #else | |
| 8 | −echo>> .\config.h #define CONFIG_TCC_LIBPATHS "{B}/lib/32;{B}/lib" | |
| 9 | −echo>> .\config.h #endif | |
| @@ -1,220 +0,0 @@ | ||
| 1 | −<?xml version="1.0" encoding="utf-8"?> | |
| 2 | −<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
| 3 | − <ItemGroup Label="ProjectConfigurations"> | |
| 4 | − <ProjectConfiguration Include="Debug|Win32"> | |
| 5 | − <Configuration>Debug</Configuration> | |
| 6 | − <Platform>Win32</Platform> | |
| 7 | − </ProjectConfiguration> | |
| 8 | − <ProjectConfiguration Include="Release|Win32"> | |
| 9 | − <Configuration>Release</Configuration> | |
| 10 | − <Platform>Win32</Platform> | |
| 11 | − </ProjectConfiguration> | |
| 12 | − <ProjectConfiguration Include="Debug|x64"> | |
| 13 | − <Configuration>Debug</Configuration> | |
| 14 | − <Platform>x64</Platform> | |
| 15 | − </ProjectConfiguration> | |
| 16 | − <ProjectConfiguration Include="Release|x64"> | |
| 17 | − <Configuration>Release</Configuration> | |
| 18 | − <Platform>x64</Platform> | |
| 19 | − </ProjectConfiguration> | |
| 20 | − </ItemGroup> | |
| 21 | − <PropertyGroup Label="Globals"> | |
| 22 | − <ProjectGuid>{41F2DA74-9707-49A3-A466-157C7028BD79}</ProjectGuid> | |
| 23 | − <Keyword>Win32Proj</Keyword> | |
| 24 | − <RootNamespace>libtcc</RootNamespace> | |
| 25 | − <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> | |
| 26 | − </PropertyGroup> | |
| 27 | − <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | |
| 28 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | |
| 29 | − <ConfigurationType>DynamicLibrary</ConfigurationType> | |
| 30 | − <UseDebugLibraries>true</UseDebugLibraries> | |
| 31 | − <PlatformToolset>v140</PlatformToolset> | |
| 32 | − <CharacterSet>MultiByte</CharacterSet> | |
| 33 | − </PropertyGroup> | |
| 34 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | |
| 35 | − <ConfigurationType>DynamicLibrary</ConfigurationType> | |
| 36 | − <UseDebugLibraries>false</UseDebugLibraries> | |
| 37 | − <PlatformToolset>v140</PlatformToolset> | |
| 38 | − <WholeProgramOptimization>true</WholeProgramOptimization> | |
| 39 | − <CharacterSet>MultiByte</CharacterSet> | |
| 40 | − </PropertyGroup> | |
| 41 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> | |
| 42 | − <ConfigurationType>DynamicLibrary</ConfigurationType> | |
| 43 | − <UseDebugLibraries>true</UseDebugLibraries> | |
| 44 | − <PlatformToolset>v140</PlatformToolset> | |
| 45 | − <CharacterSet>MultiByte</CharacterSet> | |
| 46 | − </PropertyGroup> | |
| 47 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> | |
| 48 | − <ConfigurationType>DynamicLibrary</ConfigurationType> | |
| 49 | − <UseDebugLibraries>false</UseDebugLibraries> | |
| 50 | − <PlatformToolset>v140</PlatformToolset> | |
| 51 | − <WholeProgramOptimization>true</WholeProgramOptimization> | |
| 52 | − <CharacterSet>MultiByte</CharacterSet> | |
| 53 | − </PropertyGroup> | |
| 54 | − <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | |
| 55 | − <ImportGroup Label="ExtensionSettings"> | |
| 56 | − </ImportGroup> | |
| 57 | − <ImportGroup Label="Shared"> | |
| 58 | − </ImportGroup> | |
| 59 | − <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |
| 60 | − <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |
| 61 | − </ImportGroup> | |
| 62 | − <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |
| 63 | − <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |
| 64 | − </ImportGroup> | |
| 65 | − <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | |
| 66 | − <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |
| 67 | − </ImportGroup> | |
| 68 | − <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | |
| 69 | − <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |
| 70 | − </ImportGroup> | |
| 71 | − <PropertyGroup Label="UserMacros" /> | |
| 72 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |
| 73 | − <LinkIncremental>true</LinkIncremental> | |
| 74 | − <IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> | |
| 75 | − </PropertyGroup> | |
| 76 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | |
| 77 | − <LinkIncremental>true</LinkIncremental> | |
| 78 | − <IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> | |
| 79 | − </PropertyGroup> | |
| 80 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |
| 81 | − <LinkIncremental>false</LinkIncremental> | |
| 82 | − <IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> | |
| 83 | − </PropertyGroup> | |
| 84 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | |
| 85 | − <LinkIncremental>false</LinkIncremental> | |
| 86 | − <IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> | |
| 87 | − </PropertyGroup> | |
| 88 | − <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |
| 89 | − <ClCompile> | |
| 90 | − <PrecompiledHeader> | |
| 91 | − </PrecompiledHeader> | |
| 92 | − <WarningLevel>Level3</WarningLevel> | |
| 93 | − <Optimization>Disabled</Optimization> | |
| 94 | − <PreprocessorDefinitions>ONE_SOURCE;LIBTCC_AS_DLL;TCC_TARGET_PE;TCC_TARGET_I386;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBTCC_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |
| 95 | − <DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |
| 96 | − </ClCompile> | |
| 97 | − <Link> | |
| 98 | − <SubSystem>Windows</SubSystem> | |
| 99 | − <GenerateDebugInformation>true</GenerateDebugInformation> | |
| 100 | − </Link> | |
| 101 | − <PostBuildEvent> | |
| 102 | − <Command>copy $(TargetPath) $(SolutionDir)..</Command> | |
| 103 | − </PostBuildEvent> | |
| 104 | − <PreBuildEvent> | |
| 105 | − <Command>$(ProjectDir)PreBuild.bat</Command> | |
| 106 | − </PreBuildEvent> | |
| 107 | − <PreBuildEvent> | |
| 108 | − <Message>Generate config.h</Message> | |
| 109 | − </PreBuildEvent> | |
| 110 | − </ItemDefinitionGroup> | |
| 111 | − <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | |
| 112 | − <ClCompile> | |
| 113 | − <PrecompiledHeader> | |
| 114 | − </PrecompiledHeader> | |
| 115 | − <WarningLevel>Level3</WarningLevel> | |
| 116 | − <Optimization>Disabled</Optimization> | |
| 117 | − <PreprocessorDefinitions>ONE_SOURCE;LIBTCC_AS_DLL;TCC_TARGET_PE;TCC_TARGET_X86_64;_DEBUG;_WINDOWS;_USRDLL;LIBTCC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |
| 118 | − <DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |
| 119 | − </ClCompile> | |
| 120 | − <Link> | |
| 121 | − <SubSystem>Windows</SubSystem> | |
| 122 | − <GenerateDebugInformation>true</GenerateDebugInformation> | |
| 123 | − </Link> | |
| 124 | − <PostBuildEvent> | |
| 125 | − <Command>copy $(TargetPath) $(SolutionDir)..</Command> | |
| 126 | − </PostBuildEvent> | |
| 127 | − <PreBuildEvent> | |
| 128 | − <Command>$(ProjectDir)PreBuild.bat</Command> | |
| 129 | − </PreBuildEvent> | |
| 130 | − <PreBuildEvent> | |
| 131 | − <Message>Generate config.h</Message> | |
| 132 | − </PreBuildEvent> | |
| 133 | − </ItemDefinitionGroup> | |
| 134 | − <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |
| 135 | − <ClCompile> | |
| 136 | − <WarningLevel>Level3</WarningLevel> | |
| 137 | − <PrecompiledHeader> | |
| 138 | − </PrecompiledHeader> | |
| 139 | − <Optimization>MaxSpeed</Optimization> | |
| 140 | − <FunctionLevelLinking>true</FunctionLevelLinking> | |
| 141 | − <IntrinsicFunctions>true</IntrinsicFunctions> | |
| 142 | − <PreprocessorDefinitions>ONE_SOURCE;LIBTCC_AS_DLL;TCC_TARGET_PE;TCC_TARGET_I386;WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBTCC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |
| 143 | − </ClCompile> | |
| 144 | − <Link> | |
| 145 | − <SubSystem>Windows</SubSystem> | |
| 146 | − <EnableCOMDATFolding>true</EnableCOMDATFolding> | |
| 147 | − <OptimizeReferences>true</OptimizeReferences> | |
| 148 | − <GenerateDebugInformation>true</GenerateDebugInformation> | |
| 149 | − </Link> | |
| 150 | − <PostBuildEvent> | |
| 151 | − <Command>copy $(TargetPath) $(SolutionDir)..</Command> | |
| 152 | − </PostBuildEvent> | |
| 153 | − <PreBuildEvent> | |
| 154 | − <Command>$(ProjectDir)PreBuild.bat</Command> | |
| 155 | − </PreBuildEvent> | |
| 156 | − <PreBuildEvent> | |
| 157 | − <Message>Generate config.h</Message> | |
| 158 | − </PreBuildEvent> | |
| 159 | − </ItemDefinitionGroup> | |
| 160 | − <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | |
| 161 | − <ClCompile> | |
| 162 | − <WarningLevel>Level3</WarningLevel> | |
| 163 | − <PrecompiledHeader> | |
| 164 | − </PrecompiledHeader> | |
| 165 | − <Optimization>MaxSpeed</Optimization> | |
| 166 | − <FunctionLevelLinking>true</FunctionLevelLinking> | |
| 167 | − <IntrinsicFunctions>true</IntrinsicFunctions> | |
| 168 | − <PreprocessorDefinitions>ONE_SOURCE;LIBTCC_AS_DLL;TCC_TARGET_PE;TCC_TARGET_X86_64;NDEBUG;_WINDOWS;_USRDLL;LIBTCC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |
| 169 | − </ClCompile> | |
| 170 | − <Link> | |
| 171 | − <SubSystem>Windows</SubSystem> | |
| 172 | − <EnableCOMDATFolding>true</EnableCOMDATFolding> | |
| 173 | − <OptimizeReferences>true</OptimizeReferences> | |
| 174 | − <GenerateDebugInformation>true</GenerateDebugInformation> | |
| 175 | − </Link> | |
| 176 | − <PostBuildEvent> | |
| 177 | − <Command>copy $(TargetPath) $(SolutionDir)..</Command> | |
| 178 | − </PostBuildEvent> | |
| 179 | − <PreBuildEvent> | |
| 180 | − <Command>$(ProjectDir)PreBuild.bat</Command> | |
| 181 | − </PreBuildEvent> | |
| 182 | − <PreBuildEvent> | |
| 183 | − <Message>Generate config.h</Message> | |
| 184 | − </PreBuildEvent> | |
| 185 | − </ItemDefinitionGroup> | |
| 186 | − <ItemGroup> | |
| 187 | − <ClCompile Include="..\..\libtcc.c" /> | |
| 188 | − </ItemGroup> | |
| 189 | − <ItemGroup> | |
| 190 | − <ClInclude Include="..\..\arm-gen.c" /> | |
| 191 | − <ClInclude Include="..\..\arm64-gen.c" /> | |
| 192 | − <ClInclude Include="..\..\c67-gen.c" /> | |
| 193 | − <ClInclude Include="..\..\conftest.c" /> | |
| 194 | − <ClInclude Include="..\..\i386-asm.c" /> | |
| 195 | − <ClInclude Include="..\..\i386-gen.c" /> | |
| 196 | − <ClInclude Include="..\..\il-gen.c" /> | |
| 197 | − <ClInclude Include="..\..\tcc.h" /> | |
| 198 | − <ClInclude Include="..\..\tccasm.c" /> | |
| 199 | − <ClInclude Include="..\..\tcccoff.c" /> | |
| 200 | − <ClInclude Include="..\..\tccelf.c" /> | |
| 201 | − <ClInclude Include="..\..\tccgen.c" /> | |
| 202 | − <ClInclude Include="..\..\tccpe.c" /> | |
| 203 | − <ClInclude Include="..\..\tccpp.c" /> | |
| 204 | − <ClInclude Include="..\..\tccrun.c" /> | |
| 205 | − <ClInclude Include="..\..\x86_64-gen.c" /> | |
| 206 | − <ClInclude Include="..\..\coff.h" /> | |
| 207 | − <ClInclude Include="..\..\elf.h" /> | |
| 208 | − <ClInclude Include="..\..\i386-asm.h" /> | |
| 209 | − <ClInclude Include="..\..\i386-tok.h" /> | |
| 210 | − <ClInclude Include="..\..\il-opcodes.h" /> | |
| 211 | − <ClInclude Include="..\..\libtcc.h" /> | |
| 212 | − <ClInclude Include="..\..\stab.h" /> | |
| 213 | − <ClInclude Include="..\..\tcclib.h" /> | |
| 214 | − <ClInclude Include="..\..\tcctok.h" /> | |
| 215 | − <ClInclude Include="..\..\x86_64-asm.h" /> | |
| 216 | − </ItemGroup> | |
| 217 | − <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | |
| 218 | − <ImportGroup Label="ExtensionTargets"> | |
| 219 | − </ImportGroup> | |
| 220 | −</Project> | |
| @@ -1,41 +0,0 @@ | ||
| 1 | − | |
| 2 | −Microsoft Visual Studio Solution File, Format Version 12.00 | |
| 3 | −# Visual Studio 14 | |
| 4 | −VisualStudioVersion = 14.0.25123.0 | |
| 5 | −MinimumVisualStudioVersion = 10.0.40219.1 | |
| 6 | −Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcc", "tcc.vcxproj", "{6E7932A7-B123-48EB-AB39-40867AF28105}" | |
| 7 | − ProjectSection(ProjectDependencies) = postProject | |
| 8 | − {41F2DA74-9707-49A3-A466-157C7028BD79} = {41F2DA74-9707-49A3-A466-157C7028BD79} | |
| 9 | − EndProjectSection | |
| 10 | −EndProject | |
| 11 | −Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtcc", "libtcc.vcxproj", "{41F2DA74-9707-49A3-A466-157C7028BD79}" | |
| 12 | −EndProject | |
| 13 | −Global | |
| 14 | − GlobalSection(SolutionConfigurationPlatforms) = preSolution | |
| 15 | − Debug|x64 = Debug|x64 | |
| 16 | − Debug|x86 = Debug|x86 | |
| 17 | − Release|x64 = Release|x64 | |
| 18 | − Release|x86 = Release|x86 | |
| 19 | − EndGlobalSection | |
| 20 | − GlobalSection(ProjectConfigurationPlatforms) = postSolution | |
| 21 | − {6E7932A7-B123-48EB-AB39-40867AF28105}.Debug|x64.ActiveCfg = Debug|x64 | |
| 22 | − {6E7932A7-B123-48EB-AB39-40867AF28105}.Debug|x64.Build.0 = Debug|x64 | |
| 23 | − {6E7932A7-B123-48EB-AB39-40867AF28105}.Debug|x86.ActiveCfg = Debug|Win32 | |
| 24 | − {6E7932A7-B123-48EB-AB39-40867AF28105}.Debug|x86.Build.0 = Debug|Win32 | |
| 25 | − {6E7932A7-B123-48EB-AB39-40867AF28105}.Release|x64.ActiveCfg = Release|x64 | |
| 26 | − {6E7932A7-B123-48EB-AB39-40867AF28105}.Release|x64.Build.0 = Release|x64 | |
| 27 | − {6E7932A7-B123-48EB-AB39-40867AF28105}.Release|x86.ActiveCfg = Release|Win32 | |
| 28 | − {6E7932A7-B123-48EB-AB39-40867AF28105}.Release|x86.Build.0 = Release|Win32 | |
| 29 | − {41F2DA74-9707-49A3-A466-157C7028BD79}.Debug|x64.ActiveCfg = Debug|x64 | |
| 30 | − {41F2DA74-9707-49A3-A466-157C7028BD79}.Debug|x64.Build.0 = Debug|x64 | |
| 31 | − {41F2DA74-9707-49A3-A466-157C7028BD79}.Debug|x86.ActiveCfg = Debug|Win32 | |
| 32 | − {41F2DA74-9707-49A3-A466-157C7028BD79}.Debug|x86.Build.0 = Debug|Win32 | |
| 33 | − {41F2DA74-9707-49A3-A466-157C7028BD79}.Release|x64.ActiveCfg = Release|x64 | |
| 34 | − {41F2DA74-9707-49A3-A466-157C7028BD79}.Release|x64.Build.0 = Release|x64 | |
| 35 | − {41F2DA74-9707-49A3-A466-157C7028BD79}.Release|x86.ActiveCfg = Release|Win32 | |
| 36 | − {41F2DA74-9707-49A3-A466-157C7028BD79}.Release|x86.Build.0 = Release|Win32 | |
| 37 | − EndGlobalSection | |
| 38 | − GlobalSection(SolutionProperties) = preSolution | |
| 39 | − HideSolutionNode = FALSE | |
| 40 | − EndGlobalSection | |
| 41 | −EndGlobal | |
| @@ -1,195 +0,0 @@ | ||
| 1 | −<?xml version="1.0" encoding="utf-8"?> | |
| 2 | −<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
| 3 | − <ItemGroup Label="ProjectConfigurations"> | |
| 4 | − <ProjectConfiguration Include="Debug|Win32"> | |
| 5 | − <Configuration>Debug</Configuration> | |
| 6 | − <Platform>Win32</Platform> | |
| 7 | − </ProjectConfiguration> | |
| 8 | − <ProjectConfiguration Include="Release|Win32"> | |
| 9 | − <Configuration>Release</Configuration> | |
| 10 | − <Platform>Win32</Platform> | |
| 11 | − </ProjectConfiguration> | |
| 12 | − <ProjectConfiguration Include="Debug|x64"> | |
| 13 | − <Configuration>Debug</Configuration> | |
| 14 | − <Platform>x64</Platform> | |
| 15 | − </ProjectConfiguration> | |
| 16 | − <ProjectConfiguration Include="Release|x64"> | |
| 17 | − <Configuration>Release</Configuration> | |
| 18 | − <Platform>x64</Platform> | |
| 19 | − </ProjectConfiguration> | |
| 20 | − </ItemGroup> | |
| 21 | − <PropertyGroup Label="Globals"> | |
| 22 | − <ProjectGuid>{6E7932A7-B123-48EB-AB39-40867AF28105}</ProjectGuid> | |
| 23 | − <Keyword>Win32Proj</Keyword> | |
| 24 | − <RootNamespace>tcc</RootNamespace> | |
| 25 | − <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> | |
| 26 | − </PropertyGroup> | |
| 27 | − <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | |
| 28 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | |
| 29 | − <ConfigurationType>Application</ConfigurationType> | |
| 30 | − <UseDebugLibraries>true</UseDebugLibraries> | |
| 31 | − <PlatformToolset>v140</PlatformToolset> | |
| 32 | − <CharacterSet>Unicode</CharacterSet> | |
| 33 | − </PropertyGroup> | |
| 34 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | |
| 35 | − <ConfigurationType>Application</ConfigurationType> | |
| 36 | − <UseDebugLibraries>false</UseDebugLibraries> | |
| 37 | − <PlatformToolset>v140</PlatformToolset> | |
| 38 | − <WholeProgramOptimization>true</WholeProgramOptimization> | |
| 39 | − <CharacterSet>Unicode</CharacterSet> | |
| 40 | − </PropertyGroup> | |
| 41 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> | |
| 42 | − <ConfigurationType>Application</ConfigurationType> | |
| 43 | − <UseDebugLibraries>true</UseDebugLibraries> | |
| 44 | − <PlatformToolset>v140</PlatformToolset> | |
| 45 | − <CharacterSet>Unicode</CharacterSet> | |
| 46 | − </PropertyGroup> | |
| 47 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> | |
| 48 | − <ConfigurationType>Application</ConfigurationType> | |
| 49 | − <UseDebugLibraries>false</UseDebugLibraries> | |
| 50 | − <PlatformToolset>v140</PlatformToolset> | |
| 51 | − <WholeProgramOptimization>true</WholeProgramOptimization> | |
| 52 | − <CharacterSet>Unicode</CharacterSet> | |
| 53 | − </PropertyGroup> | |
| 54 | − <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | |
| 55 | − <ImportGroup Label="ExtensionSettings"> | |
| 56 | − </ImportGroup> | |
| 57 | − <ImportGroup Label="Shared"> | |
| 58 | − </ImportGroup> | |
| 59 | − <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |
| 60 | − <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |
| 61 | − </ImportGroup> | |
| 62 | − <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |
| 63 | − <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |
| 64 | − </ImportGroup> | |
| 65 | − <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | |
| 66 | − <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |
| 67 | − </ImportGroup> | |
| 68 | − <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | |
| 69 | − <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |
| 70 | − </ImportGroup> | |
| 71 | − <PropertyGroup Label="UserMacros" /> | |
| 72 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |
| 73 | − <LinkIncremental>true</LinkIncremental> | |
| 74 | − <IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> | |
| 75 | − </PropertyGroup> | |
| 76 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | |
| 77 | − <LinkIncremental>true</LinkIncremental> | |
| 78 | − <IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> | |
| 79 | − </PropertyGroup> | |
| 80 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |
| 81 | − <LinkIncremental>false</LinkIncremental> | |
| 82 | − <IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> | |
| 83 | − </PropertyGroup> | |
| 84 | − <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | |
| 85 | − <LinkIncremental>false</LinkIncremental> | |
| 86 | − <IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> | |
| 87 | − </PropertyGroup> | |
| 88 | − <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |
| 89 | − <ClCompile> | |
| 90 | − <PrecompiledHeader> | |
| 91 | − </PrecompiledHeader> | |
| 92 | − <WarningLevel>Level3</WarningLevel> | |
| 93 | − <Optimization>Disabled</Optimization> | |
| 94 | − <PreprocessorDefinitions>TCC_TARGET_PE;TCC_TARGET_I386;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |
| 95 | − <DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |
| 96 | − </ClCompile> | |
| 97 | − <Link> | |
| 98 | − <SubSystem>Console</SubSystem> | |
| 99 | − <GenerateDebugInformation>true</GenerateDebugInformation> | |
| 100 | − <AdditionalLibraryDirectories>Debug</AdditionalLibraryDirectories> | |
| 101 | − <AdditionalDependencies>libtcc.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
| 102 | − </Link> | |
| 103 | − <PostBuildEvent> | |
| 104 | − <Command>copy $(TargetPath) $(SolutionDir)..</Command> | |
| 105 | − </PostBuildEvent> | |
| 106 | − <PreBuildEvent> | |
| 107 | − <Command>$(ProjectDir)PreBuild.bat</Command> | |
| 108 | − <Message>Generate config.h</Message> | |
| 109 | − </PreBuildEvent> | |
| 110 | − </ItemDefinitionGroup> | |
| 111 | − <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | |
| 112 | − <ClCompile> | |
| 113 | − <PrecompiledHeader> | |
| 114 | − </PrecompiledHeader> | |
| 115 | − <WarningLevel>Level3</WarningLevel> | |
| 116 | − <Optimization>Disabled</Optimization> | |
| 117 | − <PreprocessorDefinitions>TCC_TARGET_PE;TCC_TARGET_X86_64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |
| 118 | − <DebugInformationFormat>EditAndContinue</DebugInformationFormat> | |
| 119 | − </ClCompile> | |
| 120 | − <Link> | |
| 121 | − <SubSystem>Console</SubSystem> | |
| 122 | − <GenerateDebugInformation>true</GenerateDebugInformation> | |
| 123 | − <AdditionalDependencies>libtcc.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
| 124 | − <AdditionalLibraryDirectories>x64\Debug</AdditionalLibraryDirectories> | |
| 125 | − </Link> | |
| 126 | − <PostBuildEvent> | |
| 127 | − <Command>copy $(TargetPath) $(SolutionDir)..</Command> | |
| 128 | − </PostBuildEvent> | |
| 129 | − <PreBuildEvent> | |
| 130 | − <Command>$(ProjectDir)PreBuild.bat</Command> | |
| 131 | − <Message>Generate config.h</Message> | |
| 132 | − </PreBuildEvent> | |
| 133 | − </ItemDefinitionGroup> | |
| 134 | − <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |
| 135 | − <ClCompile> | |
| 136 | − <WarningLevel>Level3</WarningLevel> | |
| 137 | − <PrecompiledHeader> | |
| 138 | − </PrecompiledHeader> | |
| 139 | − <Optimization>MaxSpeed</Optimization> | |
| 140 | − <FunctionLevelLinking>true</FunctionLevelLinking> | |
| 141 | − <IntrinsicFunctions>true</IntrinsicFunctions> | |
| 142 | − <PreprocessorDefinitions>TCC_TARGET_PE;TCC_TARGET_I386;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |
| 143 | − </ClCompile> | |
| 144 | − <Link> | |
| 145 | − <SubSystem>Console</SubSystem> | |
| 146 | − <EnableCOMDATFolding>true</EnableCOMDATFolding> | |
| 147 | − <OptimizeReferences>true</OptimizeReferences> | |
| 148 | − <GenerateDebugInformation>true</GenerateDebugInformation> | |
| 149 | − <AdditionalLibraryDirectories>Release</AdditionalLibraryDirectories> | |
| 150 | − <AdditionalDependencies>libtcc.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
| 151 | − </Link> | |
| 152 | − <PostBuildEvent> | |
| 153 | − <Command>copy $(TargetPath) $(SolutionDir)..</Command> | |
| 154 | − </PostBuildEvent> | |
| 155 | − <PreBuildEvent> | |
| 156 | − <Command>$(ProjectDir)PreBuild.bat</Command> | |
| 157 | − <Message>Generate config.h</Message> | |
| 158 | − </PreBuildEvent> | |
| 159 | − </ItemDefinitionGroup> | |
| 160 | − <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | |
| 161 | − <ClCompile> | |
| 162 | − <WarningLevel>Level3</WarningLevel> | |
| 163 | − <PrecompiledHeader> | |
| 164 | − </PrecompiledHeader> | |
| 165 | − <Optimization>MaxSpeed</Optimization> | |
| 166 | − <FunctionLevelLinking>true</FunctionLevelLinking> | |
| 167 | − <IntrinsicFunctions>true</IntrinsicFunctions> | |
| 168 | − <PreprocessorDefinitions>TCC_TARGET_PE;TCC_TARGET_X86_64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |
| 169 | − </ClCompile> | |
| 170 | − <Link> | |
| 171 | − <SubSystem>Console</SubSystem> | |
| 172 | − <EnableCOMDATFolding>true</EnableCOMDATFolding> | |
| 173 | − <OptimizeReferences>true</OptimizeReferences> | |
| 174 | − <GenerateDebugInformation>true</GenerateDebugInformation> | |
| 175 | − <AdditionalDependencies>libtcc.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | |
| 176 | − <AdditionalLibraryDirectories>x64\Release</AdditionalLibraryDirectories> | |
| 177 | − </Link> | |
| 178 | − <PostBuildEvent> | |
| 179 | − <Command>copy $(TargetPath) $(SolutionDir)..</Command> | |
| 180 | − </PostBuildEvent> | |
| 181 | − <PreBuildEvent> | |
| 182 | − <Command>$(ProjectDir)PreBuild.bat</Command> | |
| 183 | − <Message>Generate config.h</Message> | |
| 184 | − </PreBuildEvent> | |
| 185 | − </ItemDefinitionGroup> | |
| 186 | − <ItemGroup> | |
| 187 | − <ClCompile Include="..\..\tcc.c" /> | |
| 188 | − </ItemGroup> | |
| 189 | − <ItemGroup> | |
| 190 | − <ClInclude Include="..\..\tcc.h" /> | |
| 191 | − </ItemGroup> | |
| 192 | − <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | |
| 193 | − <ImportGroup Label="ExtensionTargets"> | |
| 194 | − </ImportGroup> | |
| 195 | −</Project> | |