mirror of
https://github.com/mirror/tinycc.git
synced 2025-03-28 12:10:05 +08:00
updates & cleanups (tcc-doc/Changelog/TODO ...)
- 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
This commit is contained in:
parent
13056da039
commit
43d9a7de9b
102
.gitignore
vendored
102
.gitignore
vendored
@ -1,72 +1,64 @@
|
|||||||
|
*~
|
||||||
|
\#*
|
||||||
|
.#*
|
||||||
*.o
|
*.o
|
||||||
*.a
|
*.a
|
||||||
a.out
|
|
||||||
*.exe
|
*.exe
|
||||||
|
*.dll
|
||||||
|
*.obj
|
||||||
|
*.pdb
|
||||||
|
*.lib
|
||||||
|
*.exp
|
||||||
*.log
|
*.log
|
||||||
|
*.bz2
|
||||||
|
*.zip
|
||||||
|
.gdb_history
|
||||||
|
a.out
|
||||||
tcc_g
|
tcc_g
|
||||||
tcc
|
tcc
|
||||||
/*-tcc
|
*-tcc
|
||||||
tc2.c
|
|
||||||
doc
|
|
||||||
tc3s.c
|
|
||||||
p3.c
|
|
||||||
tc1.c
|
|
||||||
error.c
|
|
||||||
i386-gen1.c
|
|
||||||
test.out1
|
|
||||||
test.out1b
|
|
||||||
test.out2
|
|
||||||
test.out2b
|
|
||||||
test.out3
|
|
||||||
test.out3b
|
|
||||||
web.sh
|
|
||||||
memdebug.c
|
|
||||||
bench
|
|
||||||
Makefile.uClibc
|
|
||||||
boundtest
|
|
||||||
prog.ref
|
|
||||||
test.ref
|
|
||||||
test.out
|
|
||||||
tcc-doc.html
|
|
||||||
ideas
|
|
||||||
tcctest.ref
|
|
||||||
linux.tcc
|
|
||||||
ldtest
|
|
||||||
libtcc_test
|
|
||||||
instr.S
|
|
||||||
p.c
|
|
||||||
p2.c
|
|
||||||
tcctest[1234]
|
|
||||||
test[1234].out
|
|
||||||
tests/tcclib.h
|
|
||||||
tests/tcctest.cc
|
|
||||||
tests/weaktest.*.o.txt
|
|
||||||
tests/tests2/fred.txt
|
|
||||||
tests/tests2/*.exe
|
|
||||||
tests/hello
|
|
||||||
tests/abitest-*cc
|
|
||||||
tests/vla_test
|
|
||||||
.gdb_history
|
|
||||||
tcc.1
|
|
||||||
tcc.pod
|
|
||||||
config.h
|
config.h
|
||||||
config.mak
|
config.mak
|
||||||
config.texi
|
config.texi
|
||||||
|
conftest*
|
||||||
tags
|
tags
|
||||||
TAGS
|
TAGS
|
||||||
.DS_Store
|
tcc.1
|
||||||
*.swp
|
tcc.pod
|
||||||
|
tcc-doc.html
|
||||||
|
tcc-doc.info
|
||||||
|
|
||||||
lib/x86_64
|
lib/x86_64
|
||||||
lib/i386
|
lib/i386
|
||||||
lib/x86_64-win32
|
lib/x86_64-win32
|
||||||
lib/i386-win32
|
lib/i386-win32
|
||||||
lib/arm
|
lib/arm
|
||||||
lib/arm64
|
lib/arm64
|
||||||
tcc-doc.info
|
|
||||||
conftest*
|
win32/doc
|
||||||
tiny_libmaker
|
win32/libtcc
|
||||||
*.dSYM
|
win32/lib/32
|
||||||
*~
|
win32/lib/64
|
||||||
\#*
|
win32/include/float.h
|
||||||
.#*
|
win32/include/stdarg.h
|
||||||
win32/*
|
win32/include/stdbool.h
|
||||||
|
win32/include/stddef.h
|
||||||
|
win32/include/varargs.h
|
||||||
|
win32/include/tcclib.h
|
||||||
|
|
||||||
|
tests/test.out*
|
||||||
|
tests/test*.out
|
||||||
|
tests/tcctest[1234]
|
||||||
|
tests/tcctest.gcc
|
||||||
|
tests/*.ref
|
||||||
|
tests/*.txt
|
||||||
|
tests/*.gcc
|
||||||
|
tests/*-cc*
|
||||||
|
tests/*-tcc*
|
||||||
|
tests/libtcc_test
|
||||||
|
tests/vla_test
|
||||||
|
tests/hello
|
||||||
|
tests/tests2/fred.txt
|
||||||
|
|
||||||
|
libtcc*.def
|
||||||
|
141
Changelog
141
Changelog
@ -1,126 +1,35 @@
|
|||||||
Version 0.9.27:
|
Version 0.9.27:
|
||||||
|
|
||||||
Licensing:
|
|
||||||
|
|
||||||
- TinyCC partly relicensed to MIT license
|
|
||||||
|
|
||||||
User interface:
|
User interface:
|
||||||
|
- -x[c|a|n] filetype option (Sergey Korshunoff)
|
||||||
- define __STDC_HOSTED__ (Michael Matz, Urs Janssen)
|
- -P[1], -dD, -dM preprocessor options (Sergey Korshunoff)
|
||||||
- added support for CPATH, C_INCLUDE_PATH and LD_LIBRARY_PATH (Andrew Aladjev
|
- -Wl,-(no-)whole-archive linker option (Reuben Thomas)
|
||||||
and Urs Janssen)
|
- -mms-bitfields option (David Mertens)
|
||||||
- added option -norunsrc to control argv[0] with tcc -run (James Lyon)
|
- -include <file> option (Michael Matz)
|
||||||
- improve --with-libgcc configure help (grischka)
|
- @listfile support (Vlad Vissoultchev)
|
||||||
- improve error message when memory is full (grischka)
|
- CPATH, C_INCLUDE_PATH and LD_LIBRARY_PATH environment variables support
|
||||||
- improve wording about compiler switches in documentation (Thomas Preud'homme)
|
(Andrew Aladjev, Urs Janssen)
|
||||||
- use GNU triplet prefix for cross compiler names (Thomas Preud'homme)
|
|
||||||
- ignore unknown linker optimization and as-needed option (Austin English)
|
|
||||||
|
|
||||||
Features:
|
|
||||||
|
|
||||||
- added ABI tests with native compiler using libtcc (James Lyon)
|
|
||||||
- added CMake build system with support for cross-compilation (James Lyon)
|
|
||||||
- improved variable length array support (James Lyon)
|
|
||||||
- add the possibility to use noname functions by ordinal (YX Hao)
|
|
||||||
- add a install-strip target to install tcc (Thomas Preud'homme)
|
|
||||||
- add runtime selection of float ABI on ARM (Thomas Preud'homme)
|
|
||||||
- add shared lib support on x86-64 (Michael Matz)
|
|
||||||
|
|
||||||
Platforms:
|
Platforms:
|
||||||
- support Debian GNU/kfreeBSD 64bit userspace (Thomas Preud'homme)
|
- new AARCH64 (arm64) target (Edmund Grimley Evans)
|
||||||
- fix GNU/Hurd interpreter path (Thomas Preud'homme)
|
|
||||||
- fix configure script for FreeBSD host (Thomas Preud'homme)
|
|
||||||
- make tcc -run work reliably on ARM by flushing caches (Thomas Preud'homme)
|
|
||||||
- many x86-64 ABI fixes incl. XMM register passing (James Lyon)
|
|
||||||
- improve compatibility with mingw's long double (James Lyon)
|
|
||||||
- avoid .stabstr section name to be truncated on win32 (Roy)
|
|
||||||
- add support for load/store of _Bool value (Thomas Preud'homme)
|
|
||||||
- detect instruction with incorrect operands on x86-64 (Thomas Preud'homme)
|
|
||||||
- improved relocations on ARM (Thomas Preud'homme)
|
|
||||||
- add va_* macro implementation for ARM (Thomas Preud'homme)
|
|
||||||
- define __ARM_EABI__, __ARMEL__ and __ARM_PCS_VFP (Thomas Preud'homme)
|
|
||||||
- provide a runtime library for ARM (Thomas Preud'homme)
|
|
||||||
- vastly improved support for ARM hard float calling convention
|
- vastly improved support for ARM hard float calling convention
|
||||||
(Thomas Preud'homme, Daniel Glöckner)
|
(Thomas Preud'homme, Daniel Glöckner)
|
||||||
- tcc can uses libtcc1 on ARM (Thomas Preud'homme)
|
- provide a runtime library for ARM (Thomas Preud'homme)
|
||||||
- use __fixdfdi for all float to integer conversion (grischka)
|
- many x86-64 ABI fixes incl. XMM register passing and tests (James Lyon)
|
||||||
- simplify startup code for unix platforms (grischka)
|
- ABI tests with native compiler using libtcc (James Lyon)
|
||||||
- improve ELF generated on ARM (Thomas Preud'homme)
|
|
||||||
- add support for thumb to ARM relocation (Thomas Preud'homme)
|
|
||||||
- fix globbing to match MSVC on Windows (Thomas Preud'homme)
|
|
||||||
- deprecate FPA and OABI support for ARM (Thomas Preud'homme)
|
|
||||||
- warn about softfloat not being supported on ARM (Thomas Preud'homme)
|
|
||||||
|
|
||||||
Bug fixes:
|
Features:
|
||||||
- many code clean up (Urs Janssen, grischka)
|
- VLA (variable length array) improved (James Lyon, Pip Cet)
|
||||||
- fixes of other's patches (grischka, Ramsay Jones, Michael Matz)
|
- import functions by ordinal in .def files on windows (YX Hao)
|
||||||
- fix documentation about __TINYC__ (Urs Janssen)
|
- x86/x86-64 assembler much improved (Michael Matz)
|
||||||
- improve build of documentation (Urs Janssen)
|
- simple dead code suppression (Edmund Grimley Evans, Michael Matz, grischka)
|
||||||
- improve build instructions (Jov)
|
- implement round/fmin/fmax etc. math on windows (Avi Halachmi)
|
||||||
- switch from texi2html to makeinfo --html to build tcc-doc.html (James Lyon)
|
- #pragma once support (Sergey Korshunoff, Vlad Vissoultchev, ...)
|
||||||
- improve out of tree build (James Lyon)
|
- switch/case code improved (Zdenek Pavlas)
|
||||||
- improved passing and returning of struct (James Lyon)
|
- ~15% faster by TinyAlloc fast memory allocator (Vlad Vissoultchev)
|
||||||
- fix CMake build on i386 and x86-64 (James Lyon)
|
|
||||||
- fix i386 calling convention issue (James Lyon)
|
Licensing:
|
||||||
- fix error in Windows build of tests (James Lyon)
|
- TinyCC partly relicensed to MIT license (See RELICENSING file).
|
||||||
- fix x86-64 long double passing (James Lyon)
|
|
||||||
- fix crash with undefined struct (grischka)
|
|
||||||
- normalize slashes on win32 to always use backslashes (grischka)
|
|
||||||
- use runtime function for float to int conversion on i386 (grischka)
|
|
||||||
- improved documentation for include and lib lookup on win32 (grischka)
|
|
||||||
- detect redefinition of function (Thomas Preud'homme)
|
|
||||||
- detect the use of array of functions (Thomas Preud'homme)
|
|
||||||
- detect use of enumerator with wrong enumeration (Thomas Preud'homme)
|
|
||||||
- detect redefinition of enumerator or enumeration (Thomas Preud'homme)
|
|
||||||
- set the user-defined library search paths first (Vittorio Giovara)
|
|
||||||
- detect usage of incomplete types inside struct/union (Amine Najahi)
|
|
||||||
- various macro bug fixes (Joseph Poirier)
|
|
||||||
- avoid wrong trigger of assert on x86-64 platform (Thomas Preud'homme)
|
|
||||||
- fix NaN comparison (Thomas Preud'homme)
|
|
||||||
- use libtcc for static linking with runtime library (Thomas Preud'homme)
|
|
||||||
- fix negation of 0.0 and -0.0 values (Thomas Preud'homme)
|
|
||||||
- fix use of long long as if condition (Thomas Preud'homme)
|
|
||||||
- disable bound check if libgcc is used (Thomas Preud'homme)
|
|
||||||
- error out when casting to void (grischka)
|
|
||||||
- remove circular dependency in Makefile (grischka)
|
|
||||||
- stop preventing gcc to do strict aliasing (grischka)
|
|
||||||
- fix Windows build of tcc (grischka)
|
|
||||||
- build runtime library for arm cross compiler (Thomas Preud'homme)
|
|
||||||
- fix installation of arm cross-compiler (Thomas Preud'homme)
|
|
||||||
- add basic test for cross-compiler (Thomas Preud'homme)
|
|
||||||
- fix failure when generating PE on x86-64 (Archidemon)
|
|
||||||
- fix floating point unary minus and plus (Michael Matz)
|
|
||||||
- add more tests for signed zero float (Michael Matz)
|
|
||||||
- fix precision of double on x86-64 (Vincent Lefevre)
|
|
||||||
- fix bound checking of argv with -run switch (Kirill Smelkov)
|
|
||||||
- work around a wine cmd bug when building tcc on Windows (Austin English)
|
|
||||||
- reenable some bound check tests (grischka)
|
|
||||||
- boundtest.c lookup honors VPATH (grischka)
|
|
||||||
- diff compared to CC in test[123]b? are now errors (grischka)
|
|
||||||
- fix test3 on Windows (grischka)
|
|
||||||
- prevent gcc from building (non functional) libtcc.a (grischka)
|
|
||||||
- fix warning related to PE file generation on x86-64 (grischka)
|
|
||||||
- stop mixing ordinary and implicit rule in Makefile (Iavael)
|
|
||||||
- fix integer to double conversion on ARM (Thomas Preud'homme)
|
|
||||||
- fix parameter passing of structure < 4 bytes on ARM (Thomas Preud'homme)
|
|
||||||
- disable builtin_frame_address test on ARM due to gcc bug (Thomas Preud'homme)
|
|
||||||
- fix initialization of struct on ARM (Thomas Preud'homme)
|
|
||||||
- fix parameter passing of (unsigned) long long bitfield (Thomas Preud'homme)
|
|
||||||
- improve float to integer tests (Thomas Preud'homme)
|
|
||||||
- fix relocation of Thumb branch to ARM function (Thomas Preud'homme)
|
|
||||||
- fix char wrong compatibility with [un]signed char (Thomas Preud'homme)
|
|
||||||
- choose the code to compile based on target in libtcc1 (Thomas Preud'homme)
|
|
||||||
- fix various clang warnings (Thomas Preud'homme)
|
|
||||||
- don't hardcode tcc in Makefile for tests (Thomas Preud'homme)
|
|
||||||
- fix relocation of __bound_init bound checking code (Thomas Preud'homme)
|
|
||||||
- accept only one basic type for a given variable (Thomas Preud'homme)
|
|
||||||
- fix error when using va_* with tcc using libgcc (Thomas Preud'homme)
|
|
||||||
- support GOT32 and PLT32 reloc on the same symbol (Thomas Preud'homme)
|
|
||||||
- fix memory leak due to symbol attributes (mingodad)
|
|
||||||
- partially fix bound checking of argv and arge (Thomas Preud'homme)
|
|
||||||
- fix possible dereference when getting name of symbol (grischka)
|
|
||||||
- fix va_list type definition on x86-64 (Daniel Glöckner)
|
|
||||||
- reduce number of scan-build false positive (mingodad)
|
|
||||||
|
|
||||||
version 0.9.26:
|
version 0.9.26:
|
||||||
|
|
||||||
|
12
Makefile
12
Makefile
@ -26,14 +26,16 @@ LINK_LIBTCC =
|
|||||||
LIBS =
|
LIBS =
|
||||||
|
|
||||||
ifdef CONFIG_WIN32
|
ifdef CONFIG_WIN32
|
||||||
|
ifneq ($(DISABLE_STATIC),no)
|
||||||
LIBTCC = libtcc.dll
|
LIBTCC = libtcc.dll
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
LIBS=-lm
|
LIBS=-lm
|
||||||
ifndef CONFIG_NOLDL
|
ifndef CONFIG_NOLDL
|
||||||
LIBS+=-ldl
|
LIBS+=-ldl
|
||||||
endif
|
endif
|
||||||
# make libtcc as static or dynamic library?
|
# make libtcc as static or dynamic library?
|
||||||
ifdef DISABLE_STATIC
|
ifeq ($(DISABLE_STATIC),yes)
|
||||||
LIBTCC=libtcc.so
|
LIBTCC=libtcc.so
|
||||||
ifndef DISABLE_RPATH
|
ifndef DISABLE_RPATH
|
||||||
LINK_LIBTCC += -Wl,-rpath,"$(libdir)"
|
LINK_LIBTCC += -Wl,-rpath,"$(libdir)"
|
||||||
@ -92,7 +94,7 @@ ARM64_FILES = $(CORE_FILES) arm64-gen.c arm64-link.c
|
|||||||
C67_FILES = $(CORE_FILES) c67-gen.c c67-link.c tcccoff.c
|
C67_FILES = $(CORE_FILES) c67-gen.c c67-link.c tcccoff.c
|
||||||
|
|
||||||
ifdef CONFIG_WIN32
|
ifdef CONFIG_WIN32
|
||||||
PROGS+=tiny_impdef$(EXESUF) tiny_libmaker$(EXESUF) $(LIBTCC)
|
PROGS+=tiny_impdef$(EXESUF) tiny_libmaker$(EXESUF)
|
||||||
ifeq ($(ARCH),x86-64)
|
ifeq ($(ARCH),x86-64)
|
||||||
NATIVE_FILES=$(WIN64_FILES)
|
NATIVE_FILES=$(WIN64_FILES)
|
||||||
PROGS_CROSS=$(WIN32_CROSS) $(X64_CROSS) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS)
|
PROGS_CROSS=$(WIN32_CROSS) $(X64_CROSS) $(ARM_CROSS) $(ARM64_CROSS) $(C67_CROSS) $(WINCE_CROSS)
|
||||||
@ -272,14 +274,14 @@ install:
|
|||||||
mkdir -p "$(tccdir)/examples"
|
mkdir -p "$(tccdir)/examples"
|
||||||
mkdir -p "$(tccdir)/doc"
|
mkdir -p "$(tccdir)/doc"
|
||||||
mkdir -p "$(tccdir)/libtcc"
|
mkdir -p "$(tccdir)/libtcc"
|
||||||
$(INSTALLBIN) -m755 $(PROGS) "$(tccdir)"
|
$(INSTALLBIN) -m755 $(PROGS) $(subst libtcc.a,,$(LIBTCC)) "$(tccdir)"
|
||||||
$(INSTALL) -m644 libtcc1.a $(TOPSRC)/win32/lib/*.def "$(tccdir)/lib"
|
$(INSTALL) -m644 libtcc1.a $(TOPSRC)/win32/lib/*.def "$(tccdir)/lib"
|
||||||
cp -r $(TOPSRC)/win32/include/. "$(tccdir)/include"
|
cp -r $(TOPSRC)/win32/include/. "$(tccdir)/include"
|
||||||
cp -r $(TOPSRC)/win32/examples/. "$(tccdir)/examples"
|
cp -r $(TOPSRC)/win32/examples/. "$(tccdir)/examples"
|
||||||
cp $(TOPSRC)/tests/libtcc_test.c "$(tccdir)/examples"
|
cp $(TOPSRC)/tests/libtcc_test.c "$(tccdir)/examples"
|
||||||
$(INSTALL) -m644 $(TOPSRC)/include/*.h $(TOPSRC)/tcclib.h "$(tccdir)/include"
|
$(INSTALL) -m644 $(TOPSRC)/include/*.h $(TOPSRC)/tcclib.h "$(tccdir)/include"
|
||||||
$(INSTALL) -m644 tcc-doc.html $(TOPSRC)/win32/tcc-win32.txt "$(tccdir)/doc"
|
$(INSTALL) -m644 $(TOPSRC)/libtcc.h $(subst .dll,.def,$(LIBTCC)) "$(tccdir)/libtcc"
|
||||||
$(INSTALL) -m644 $(TOPSRC)/libtcc.h libtcc.def "$(tccdir)/libtcc"
|
-$(INSTALL) -m644 $(TOPSRC)/win32/tcc-win32.txt tcc-doc.html "$(tccdir)/doc"
|
||||||
ifdef CONFIG_CROSS
|
ifdef CONFIG_CROSS
|
||||||
mkdir -p "$(tccdir)/lib/32"
|
mkdir -p "$(tccdir)/lib/32"
|
||||||
mkdir -p "$(tccdir)/lib/64"
|
mkdir -p "$(tccdir)/lib/64"
|
||||||
|
28
TODO
28
TODO
@ -2,16 +2,8 @@ TODO list:
|
|||||||
|
|
||||||
Bugs:
|
Bugs:
|
||||||
|
|
||||||
- fix macro substitution with nested definitions (ShangHongzhang)
|
|
||||||
- FPU st(0) is left unclean (kwisatz haderach). Incompatible with
|
- FPU st(0) is left unclean (kwisatz haderach). Incompatible with
|
||||||
optimized gcc/msc code
|
optimized gcc/msc code
|
||||||
|
|
||||||
- constructors
|
|
||||||
- cast bug (Peter Wang)
|
|
||||||
- define incomplete type if defined several times (Peter Wang).
|
|
||||||
- test binutils/gcc compile
|
|
||||||
- tci patch + argument.
|
|
||||||
- see -lxxx bug (Michael Charity).
|
|
||||||
- see transparent union pb in /urs/include/sys/socket.h
|
- see transparent union pb in /urs/include/sys/socket.h
|
||||||
- precise behaviour of typeof with arrays ? (__put_user macro)
|
- precise behaviour of typeof with arrays ? (__put_user macro)
|
||||||
but should suffice for most cases)
|
but should suffice for most cases)
|
||||||
@ -26,11 +18,10 @@ Bugs:
|
|||||||
- finish varargs.h support (gcc 3.2 testsuite issue)
|
- finish varargs.h support (gcc 3.2 testsuite issue)
|
||||||
- fix static functions declared inside block
|
- fix static functions declared inside block
|
||||||
- fix multiple unions init
|
- fix multiple unions init
|
||||||
- sizeof, alignof, typeof can still generate code in some cases.
|
|
||||||
- Fix the remaining libtcc memory leaks.
|
|
||||||
- make libtcc fully reentrant (except for the compilation stage itself).
|
- make libtcc fully reentrant (except for the compilation stage itself).
|
||||||
- struct/union/enum definitions in nested scopes (see also Debian bug #770657)
|
- struct/union/enum definitions in nested scopes (see also Debian bug #770657)
|
||||||
- __STDC_IEC_559__: float f(void) { static float x = 0.0 / 0.0; return x; }
|
- __STDC_IEC_559__: float f(void) { static float x = 0.0 / 0.0; return x; }
|
||||||
|
- memory may be leaked after errors (longjmp).
|
||||||
|
|
||||||
Portability:
|
Portability:
|
||||||
|
|
||||||
@ -42,14 +33,10 @@ Portability:
|
|||||||
|
|
||||||
Linking:
|
Linking:
|
||||||
|
|
||||||
- static linking does not work
|
- static linking (-static) does not work
|
||||||
- with "-run" and libtcc, no PLT is used, so branches may be out of
|
|
||||||
range and relocations may fail; as a result libtest fails on arm64; see:
|
|
||||||
https://lists.gnu.org/archive/html/tinycc-devel/2015-03/msg00111.html
|
|
||||||
|
|
||||||
Bound checking:
|
Bound checking:
|
||||||
|
|
||||||
- '-b' bug.
|
|
||||||
- fix bound exit on RedHat 7.3
|
- fix bound exit on RedHat 7.3
|
||||||
- setjmp is not supported properly in bound checking.
|
- setjmp is not supported properly in bound checking.
|
||||||
- fix bound check code with '&' on local variables (currently done
|
- fix bound check code with '&' on local variables (currently done
|
||||||
@ -61,11 +48,10 @@ Missing features:
|
|||||||
|
|
||||||
- disable-asm and disable-bcheck options
|
- disable-asm and disable-bcheck options
|
||||||
- __builtin_expect()
|
- __builtin_expect()
|
||||||
- improve '-E' option.
|
|
||||||
- atexit (Nigel Horne)
|
- atexit (Nigel Horne)
|
||||||
- packed attribute
|
|
||||||
- C99: add complex types (gcc 3.2 testsuite issue)
|
- C99: add complex types (gcc 3.2 testsuite issue)
|
||||||
- postfix compound literals (see 20010124-1.c)
|
- postfix compound literals (see 20010124-1.c)
|
||||||
|
- interactive mode / integrated debugger
|
||||||
|
|
||||||
Optimizations:
|
Optimizations:
|
||||||
|
|
||||||
@ -81,9 +67,8 @@ Not critical:
|
|||||||
normative example - only relevant when using gotos! -> must add
|
normative example - only relevant when using gotos! -> must add
|
||||||
boolean variable to tell if compound literal was already
|
boolean variable to tell if compound literal was already
|
||||||
initialized).
|
initialized).
|
||||||
- add PowerPC or ARM code generator and improve codegen for RISC (need
|
- add PowerPC generator and improve codegen for RISC (need
|
||||||
to suppress VT_LOCAL and use a base register instead).
|
to suppress VT_LOCAL and use a base register instead).
|
||||||
- interactive mode / integrated debugger
|
|
||||||
- fix preprocessor symbol redefinition
|
- fix preprocessor symbol redefinition
|
||||||
- add portable byte code generator and interpreter for other
|
- add portable byte code generator and interpreter for other
|
||||||
unsupported architectures.
|
unsupported architectures.
|
||||||
@ -108,3 +93,8 @@ Fixed (probably):
|
|||||||
- #include_next support for /usr/include/limits ?
|
- #include_next support for /usr/include/limits ?
|
||||||
- function pointers/lvalues in ? : (linux kernel net/core/dev.c)
|
- function pointers/lvalues in ? : (linux kernel net/core/dev.c)
|
||||||
- win32: add __stdcall, check GetModuleHandle for dlls.
|
- win32: add __stdcall, check GetModuleHandle for dlls.
|
||||||
|
- macro substitution with nested definitions (ShangHongzhang)
|
||||||
|
- with "-run" and libtcc, a PLT is now built.
|
||||||
|
- '-E' option was improved
|
||||||
|
- packed attribute is now supported
|
||||||
|
- ARM and ARM64 code generators have been added.
|
||||||
|
37
configure
vendored
37
configure
vendored
@ -19,6 +19,7 @@ TMPH=$TMPN.h
|
|||||||
# default parameters
|
# default parameters
|
||||||
build_cross="no"
|
build_cross="no"
|
||||||
use_libgcc="no"
|
use_libgcc="no"
|
||||||
|
disable_static=""
|
||||||
prefix=""
|
prefix=""
|
||||||
execprefix=""
|
execprefix=""
|
||||||
bindir=""
|
bindir=""
|
||||||
@ -53,6 +54,7 @@ targetos=`uname`
|
|||||||
case $targetos in
|
case $targetos in
|
||||||
MINGW*) mingw32=yes;;
|
MINGW*) mingw32=yes;;
|
||||||
MSYS*) mingw32=yes;;
|
MSYS*) mingw32=yes;;
|
||||||
|
CYGWIN*) mingw32=yes; cygwin=yes; cross_prefix="mingw32-";;
|
||||||
DragonFly) noldl=yes;;
|
DragonFly) noldl=yes;;
|
||||||
OpenBSD) noldl=yes;;
|
OpenBSD) noldl=yes;;
|
||||||
FreeBSD) noldl=yes;;
|
FreeBSD) noldl=yes;;
|
||||||
@ -69,6 +71,8 @@ source_path_used="yes"
|
|||||||
if test -z "$source_path" -o "$source_path" = "." ; then
|
if test -z "$source_path" -o "$source_path" = "." ; then
|
||||||
source_path=`pwd`
|
source_path=`pwd`
|
||||||
source_path_used="no"
|
source_path_used="no"
|
||||||
|
# mingw compilers might not understand cygwin paths
|
||||||
|
if test $cygwin = "yes"; then source_path="."; fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for opt do
|
for opt do
|
||||||
@ -126,12 +130,12 @@ for opt do
|
|||||||
;;
|
;;
|
||||||
--enable-mingw32) mingw32="yes" ; cross_prefix="i686-pc-mingw32-" ; cpu=x86
|
--enable-mingw32) mingw32="yes" ; cross_prefix="i686-pc-mingw32-" ; cpu=x86
|
||||||
;;
|
;;
|
||||||
--enable-cygwin) mingw32="yes" ; cygwin="yes" ; cross_prefix="mingw32-" ; cpu=x86
|
|
||||||
;;
|
|
||||||
--enable-cross) build_cross="yes"
|
--enable-cross) build_cross="yes"
|
||||||
;;
|
;;
|
||||||
--disable-static) disable_static="yes"
|
--disable-static) disable_static="yes"
|
||||||
;;
|
;;
|
||||||
|
--enable-static) disable_static="no"
|
||||||
|
;;
|
||||||
--disable-rpath) disable_rpath="yes"
|
--disable-rpath) disable_rpath="yes"
|
||||||
;;
|
;;
|
||||||
--strip-binaries) strip_binaries="yes"
|
--strip-binaries) strip_binaries="yes"
|
||||||
@ -288,12 +292,12 @@ Advanced options (experts only):
|
|||||||
--cpu=CPU CPU [$cpu]
|
--cpu=CPU CPU [$cpu]
|
||||||
--strip-binaries strip symbol tables from resulting binaries
|
--strip-binaries strip symbol tables from resulting binaries
|
||||||
--disable-static make libtcc.so instead of libtcc.a
|
--disable-static make libtcc.so instead of libtcc.a
|
||||||
|
--enable-static make libtcc.a instead of libtcc.dll (win32)
|
||||||
--disable-rpath disable use of -rpath with the above
|
--disable-rpath disable use of -rpath with the above
|
||||||
--with-libgcc use libgcc_s.so.1 instead of libtcc1.a in dynamic link
|
--with-libgcc use libgcc_s.so.1 instead of libtcc1.a in dynamic link
|
||||||
--enable-mingw32 build windows version on linux with mingw32
|
--enable-mingw32 build windows version on linux with mingw32
|
||||||
--enable-cygwin build windows version on windows with cygwin
|
|
||||||
--enable-cross build cross compilers
|
--enable-cross build cross compilers
|
||||||
--with-selinux use mmap for exec mem [needs writable /tmp]
|
--with-selinux use mmap for executable memory (with tcc -run)
|
||||||
--sysincludepaths=... specify system include paths, colon separated
|
--sysincludepaths=... specify system include paths, colon separated
|
||||||
--libpaths=... specify system library paths, colon separated
|
--libpaths=... specify system library paths, colon separated
|
||||||
--crtprefix=... specify locations of crt?.o, colon separated
|
--crtprefix=... specify locations of crt?.o, colon separated
|
||||||
@ -309,14 +313,15 @@ ar="${cross_prefix}${ar}"
|
|||||||
strip="${cross_prefix}${strip}"
|
strip="${cross_prefix}${strip}"
|
||||||
|
|
||||||
CONFTEST=./conftest$EXESUF
|
CONFTEST=./conftest$EXESUF
|
||||||
|
if ! $cc -o $CONFTEST $source_path/conftest.c 2>/dev/null ; then
|
||||||
if test -z "$cross_prefix" ; then
|
|
||||||
if ! $cc -o $CONFTEST $source_path/conftest.c 2>/dev/null ; then
|
|
||||||
echo "configure: error: '$cc' failed to compile conftest.c."
|
echo "configure: error: '$cc' failed to compile conftest.c."
|
||||||
else
|
else
|
||||||
bigendian="$($CONFTEST bigendian)"
|
|
||||||
gcc_major="$($CONFTEST version)"
|
gcc_major="$($CONFTEST version)"
|
||||||
gcc_minor="$($CONFTEST minor)"
|
gcc_minor="$($CONFTEST minor)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$cross_prefix" ; then
|
||||||
|
bigendian="$($CONFTEST bigendian)"
|
||||||
if test "$mingw32" = "no" ; then
|
if test "$mingw32" = "no" ; then
|
||||||
|
|
||||||
if test -z "$triplet"; then
|
if test -z "$triplet"; then
|
||||||
@ -348,8 +353,6 @@ if test -z "$cross_prefix" ; then
|
|||||||
if test -f "/lib/ld-uClibc.so.0" ; then
|
if test -f "/lib/ld-uClibc.so.0" ; then
|
||||||
confvars="$confvars uClibc"
|
confvars="$confvars uClibc"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# if cross compiling, cannot launch a program, so make a static guess
|
# if cross compiling, cannot launch a program, so make a static guess
|
||||||
@ -365,7 +368,7 @@ for i in $W_OPTIONS; do
|
|||||||
O_PRESENT="$(grep -- -W$i cc_help.txt)"
|
O_PRESENT="$(grep -- -W$i cc_help.txt)"
|
||||||
if test -n "$O_PRESENT"; then CFLAGS="$CFLAGS -W$i"; fi
|
if test -n "$O_PRESENT"; then CFLAGS="$CFLAGS -W$i"; fi
|
||||||
done
|
done
|
||||||
W_OPTIONS="deprecated-declarations strict-aliasing pointer-sign sign-compare unused-result uninitialized"
|
W_OPTIONS="pointer-sign sign-compare unused-result"
|
||||||
for i in $W_OPTIONS; do
|
for i in $W_OPTIONS; do
|
||||||
O_PRESENT="$(grep -- -W$i cc_help.txt)"
|
O_PRESENT="$(grep -- -W$i cc_help.txt)"
|
||||||
if test -n "$O_PRESENT"; then CFLAGS="$CFLAGS -Wno-$i"; fi
|
if test -n "$O_PRESENT"; then CFLAGS="$CFLAGS -Wno-$i"; fi
|
||||||
@ -481,12 +484,6 @@ fi
|
|||||||
if test "$mingw32" = "yes" ; then
|
if test "$mingw32" = "yes" ; then
|
||||||
echo "CONFIG_WIN32=yes" >> config.mak
|
echo "CONFIG_WIN32=yes" >> config.mak
|
||||||
fi
|
fi
|
||||||
if test "$cygwin" = "yes" ; then
|
|
||||||
echo "#ifndef _WIN32" >> $TMPH
|
|
||||||
echo "# define _WIN32" >> $TMPH
|
|
||||||
echo "#endif" >> $TMPH
|
|
||||||
echo "AR=ar" >> config.mak
|
|
||||||
fi
|
|
||||||
if test "$bigendian" = "yes" ; then
|
if test "$bigendian" = "yes" ; then
|
||||||
echo "WORDS_BIGENDIAN=yes" >> config.mak
|
echo "WORDS_BIGENDIAN=yes" >> config.mak
|
||||||
echo "#define WORDS_BIGENDIAN 1" >> $TMPH
|
echo "#define WORDS_BIGENDIAN 1" >> $TMPH
|
||||||
@ -498,8 +495,8 @@ fi
|
|||||||
if test "$build_cross" = "yes" ; then
|
if test "$build_cross" = "yes" ; then
|
||||||
echo "CONFIG_CROSS=yes" >> config.mak
|
echo "CONFIG_CROSS=yes" >> config.mak
|
||||||
fi
|
fi
|
||||||
if test "$disable_static" = "yes" ; then
|
if test -n "$disable_static" ; then
|
||||||
echo "DISABLE_STATIC=yes" >> config.mak
|
echo "DISABLE_STATIC=$disable_static" >> config.mak
|
||||||
fi
|
fi
|
||||||
if test "$disable_rpath" = "yes" ; then
|
if test "$disable_rpath" = "yes" ; then
|
||||||
echo "DISABLE_RPATH=yes" >> config.mak
|
echo "DISABLE_RPATH=yes" >> config.mak
|
||||||
|
48
tcc-doc.texi
48
tcc-doc.texi
@ -176,29 +176,15 @@ In a script, it gives the following header:
|
|||||||
#!/usr/local/bin/tcc -run -L/usr/X11R6/lib -lX11
|
#!/usr/local/bin/tcc -run -L/usr/X11R6/lib -lX11
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@item -mms-bitfields
|
|
||||||
Use an algorithm for bitfield alignment consistent with MSVC. Default is
|
|
||||||
gcc's algorithm.
|
|
||||||
|
|
||||||
@item -mfloat-abi (ARM only)
|
|
||||||
Select the float ABI. Possible values: @code{softfp} and @code{hard}
|
|
||||||
|
|
||||||
@item -dumpversion
|
|
||||||
Print only the compiler version and nothing else.
|
|
||||||
|
|
||||||
@item -v
|
@item -v
|
||||||
Display TCC version.
|
Display TCC version.
|
||||||
|
|
||||||
@item -vv
|
@item -vv
|
||||||
Show included files. As sole argument, print search dirs (as below).
|
Show included files. As sole argument, print search dirs. -vvv shows tries too.
|
||||||
|
|
||||||
@item -bench
|
@item -bench
|
||||||
Display compilation statistics.
|
Display compilation statistics.
|
||||||
|
|
||||||
@item -print-search-dirs
|
|
||||||
Print the configured installation directory and a list of library
|
|
||||||
and include directories tcc will search.
|
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
Preprocessor options:
|
Preprocessor options:
|
||||||
@ -220,6 +206,10 @@ also be defined: @option{-DF(a)=a+1}
|
|||||||
|
|
||||||
@item -Usym
|
@item -Usym
|
||||||
Undefine preprocessor symbol @samp{sym}.
|
Undefine preprocessor symbol @samp{sym}.
|
||||||
|
|
||||||
|
@item -E
|
||||||
|
Preprocess only, to stdout or file (with -o).
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
Compilation flags:
|
Compilation flags:
|
||||||
@ -337,6 +327,9 @@ Modify executable layout.
|
|||||||
@item -Wl,-Bsymbolic
|
@item -Wl,-Bsymbolic
|
||||||
Set DT_SYMBOLIC tag.
|
Set DT_SYMBOLIC tag.
|
||||||
|
|
||||||
|
@item -Wl,-(no-)whole-archive
|
||||||
|
Turn on/off linking of all objects in archives.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
Debugger options:
|
Debugger options:
|
||||||
@ -370,6 +363,31 @@ Generate makefile fragment with dependencies.
|
|||||||
@item -MF depfile
|
@item -MF depfile
|
||||||
Use @file{depfile} as output for -MD.
|
Use @file{depfile} as output for -MD.
|
||||||
|
|
||||||
|
@item -print-search-dirs
|
||||||
|
Print the configured installation directory and a list of library
|
||||||
|
and include directories tcc will search.
|
||||||
|
|
||||||
|
@item -dumpversion
|
||||||
|
Print version.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
Target specific options:
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
@item -mms-bitfields
|
||||||
|
Use an algorithm for bitfield alignment consistent with MSVC. Default is
|
||||||
|
gcc's algorithm.
|
||||||
|
|
||||||
|
@item -mfloat-abi (ARM only)
|
||||||
|
Select the float ABI. Possible values: @code{softfp} and @code{hard}
|
||||||
|
|
||||||
|
@item -mno-sse
|
||||||
|
Do not use sse registers on x86-64
|
||||||
|
|
||||||
|
@item -m32, -m64
|
||||||
|
Pass command line to the i386/x86-64 cross compiler.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
Note: GCC options @option{-Ox}, @option{-fx} and @option{-mx} are
|
Note: GCC options @option{-Ox}, @option{-fx} and @option{-mx} are
|
||||||
|
1
tcc.c
1
tcc.c
@ -109,6 +109,7 @@ static void help(void)
|
|||||||
" -E preprocess only\n"
|
" -E preprocess only\n"
|
||||||
" -P[1] no / alternative #line output with -E\n"
|
" -P[1] no / alternative #line output with -E\n"
|
||||||
" -dD -dM output #define directives with -E\n"
|
" -dD -dM output #define directives with -E\n"
|
||||||
|
" -include file include file above each input file\n"
|
||||||
"Linker options:\n"
|
"Linker options:\n"
|
||||||
" -Ldir add library path 'dir'\n"
|
" -Ldir add library path 'dir'\n"
|
||||||
" -llib link with dynamic or static library 'lib'\n"
|
" -llib link with dynamic or static library 'lib'\n"
|
||||||
|
@ -187,7 +187,7 @@ speedtest: ex2 ex3
|
|||||||
|
|
||||||
weaktest: tcctest.c test.ref
|
weaktest: tcctest.c test.ref
|
||||||
$(TCC) -c $< -o weaktest.tcc.o
|
$(TCC) -c $< -o weaktest.tcc.o
|
||||||
$(CC) -c $< -o weaktest.gcc.o -I. $(CFLAGS)
|
$(CC) -c $< -o weaktest.gcc.o $(NATIVE_DEFINES) $(CFLAGS) -w -O0 -std=gnu99 -fno-omit-frame-pointer
|
||||||
objdump -t weaktest.tcc.o | grep ' w ' | sed -e 's/.* \([a-zA-Z0-9_]*\)$$/\1/' | LC_ALL=C sort > weaktest.tcc.o.txt
|
objdump -t weaktest.tcc.o | grep ' w ' | sed -e 's/.* \([a-zA-Z0-9_]*\)$$/\1/' | LC_ALL=C sort > weaktest.tcc.o.txt
|
||||||
objdump -t weaktest.gcc.o | grep ' w ' | sed -e 's/.* \([a-zA-Z0-9_]*\)$$/\1/' | LC_ALL=C sort > weaktest.gcc.o.txt
|
objdump -t weaktest.gcc.o | grep ' w ' | sed -e 's/.* \([a-zA-Z0-9_]*\)$$/\1/' | LC_ALL=C sort > weaktest.gcc.o.txt
|
||||||
diff weaktest.gcc.o.txt weaktest.tcc.o.txt && echo "Weak Auto Test OK"
|
diff weaktest.gcc.o.txt weaktest.tcc.o.txt && echo "Weak Auto Test OK"
|
||||||
@ -254,7 +254,8 @@ cache: tcc_g
|
|||||||
# clean
|
# clean
|
||||||
clean:
|
clean:
|
||||||
rm -f *~ *.o *.a *.bin *.i *.ref *.out *.out? *.out?b *.cc *.gcc \
|
rm -f *~ *.o *.a *.bin *.i *.ref *.out *.out? *.out?b *.cc *.gcc \
|
||||||
*-cc *-gcc *-tcc *.exe hello libtcc_test vla_test tcctest[1234] ex? tcc_g
|
*-cc *-gcc *-tcc *.exe hello libtcc_test vla_test tcctest[1234] \
|
||||||
|
ex? tcc_g *.def weaktest.*.txt
|
||||||
$(MAKE) -C tests2 $@
|
$(MAKE) -C tests2 $@
|
||||||
$(MAKE) -C pp $@
|
$(MAKE) -C pp $@
|
||||||
|
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
import difflib
|
|
||||||
|
|
||||||
def main():
|
|
||||||
reference = subprocess.check_output([sys.argv[1]])
|
|
||||||
compare = subprocess.check_output(sys.argv[2:])
|
|
||||||
failed = False
|
|
||||||
for line in difflib.unified_diff(reference.split('\n'), compare.split('\n'), fromfile='cc', tofile='tcc', lineterm=''):
|
|
||||||
failed = True
|
|
||||||
print line
|
|
||||||
sys.exit(1 if failed else 0)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
0
tests/tests2/86-memory-model.c → tests/tests2/86_memory-model.c
Executable file → Normal file
0
tests/tests2/86-memory-model.c → tests/tests2/86_memory-model.c
Executable file → Normal file
0
tests/tests2/86-memory-model.expect → tests/tests2/86_memory-model.expect
Executable file → Normal file
0
tests/tests2/86-memory-model.expect → tests/tests2/86_memory-model.expect
Executable file → Normal file
@ -110,7 +110,7 @@ tarball:
|
|||||||
@cp -r lib $(TARNAME)
|
@cp -r lib $(TARNAME)
|
||||||
@cp -r libtcc $(TARNAME)
|
@cp -r libtcc $(TARNAME)
|
||||||
@cp -r tools $(TARNAME)
|
@cp -r tools $(TARNAME)
|
||||||
@cp -r vs2015 $(TARNAME)
|
# @cp -r vs2015 $(TARNAME)
|
||||||
@cp -r build-tcc.bat $(TARNAME)
|
@cp -r build-tcc.bat $(TARNAME)
|
||||||
@cp -r i386-win32-tcc.exe $(TARNAME)
|
@cp -r i386-win32-tcc.exe $(TARNAME)
|
||||||
@cp -r libtcc.def $(TARNAME)
|
@cp -r libtcc.def $(TARNAME)
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
@rem ------------------------------------------------------
|
@rem ------------------------------------------------------
|
||||||
@rem batch file to build tcc using mingw gcc or tcc itself
|
@rem batch file to build tcc using mingw, msvc or tcc itself
|
||||||
@rem ------------------------------------------------------
|
@rem ------------------------------------------------------
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
set CC=gcc -Os -s -fno-strict-aliasing
|
set CC=gcc -Os -s
|
||||||
|
|
||||||
set T=32
|
set T=32
|
||||||
if %PROCESSOR_ARCHITECTURE%_==AMD64_ set T=64
|
if %PROCESSOR_ARCHITECTURE%_==AMD64_ set T=64
|
||||||
if %PROCESSOR_ARCHITEW6432%_==AMD64_ set T=64
|
if %PROCESSOR_ARCHITEW6432%_==AMD64_ set T=64
|
||||||
@ -16,7 +17,7 @@ goto :a0
|
|||||||
:usage
|
:usage
|
||||||
echo usage: build-tcc.bat [ options ... ]
|
echo usage: build-tcc.bat [ options ... ]
|
||||||
echo options:
|
echo options:
|
||||||
echo -c prog use prog (gcc or tcc) to compile tcc
|
echo -c prog use prog (gcc/tcc/cl) to compile tcc
|
||||||
echo -c "prog options" use prog with options to compile tcc
|
echo -c "prog options" use prog with options to compile tcc
|
||||||
echo -t 32/64 force 32/64 bit default target
|
echo -t 32/64 force 32/64 bit default target
|
||||||
echo -v "version" set tcc version
|
echo -v "version" set tcc version
|
||||||
@ -24,6 +25,21 @@ echo -i dir install tcc into dir
|
|||||||
echo -d create tcc-doc.html too (needs makeinfo)
|
echo -d create tcc-doc.html too (needs makeinfo)
|
||||||
exit /B 1
|
exit /B 1
|
||||||
|
|
||||||
|
:cl
|
||||||
|
@echo off
|
||||||
|
set CMD=cl
|
||||||
|
:c0
|
||||||
|
set ARG=%1
|
||||||
|
set ARG=%ARG:.dll=.lib%
|
||||||
|
if (%1)==(-shared) set ARG=-LD
|
||||||
|
if (%1)==(-o) shift && set ARG=-Fe%2
|
||||||
|
set CMD=%CMD% %ARG%
|
||||||
|
shift
|
||||||
|
if not (%1)==() goto :c0
|
||||||
|
echo on
|
||||||
|
%CMD% -O1 -W2 -Zi -MT -GS- -nologo -link -opt:ref,icf
|
||||||
|
@exit /B %ERRORLEVEL%
|
||||||
|
|
||||||
:a2
|
:a2
|
||||||
shift
|
shift
|
||||||
:a1
|
:a1
|
||||||
@ -31,6 +47,7 @@ shift
|
|||||||
:a0
|
:a0
|
||||||
if not (%1)==(-c) goto :a3
|
if not (%1)==(-c) goto :a3
|
||||||
set CC=%~2
|
set CC=%~2
|
||||||
|
if (%2)==(cl) set CC=@call :cl
|
||||||
goto :a2
|
goto :a2
|
||||||
:a3
|
:a3
|
||||||
if not (%1)==(-t) goto :a4
|
if not (%1)==(-t) goto :a4
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#ifndef _TCC_LIBM_H_
|
#ifndef _TCC_LIBM_H_
|
||||||
#define _TCC_LIBM_H_
|
#define _TCC_LIBM_H_
|
||||||
|
|
||||||
#include "../include/math.h"
|
#include "../math.h"
|
||||||
|
|
||||||
/* TCC uses 8 bytes for double and long double, so effectively the l variants
|
/* TCC uses 8 bytes for double and long double, so effectively the l variants
|
||||||
* are never used. For now, they just run the normal (double) variant.
|
* are never used. For now, they just run the normal (double) variant.
|
||||||
|
@ -107,11 +107,9 @@
|
|||||||
Compilation from source:
|
Compilation from source:
|
||||||
------------------------
|
------------------------
|
||||||
* You can use the MinGW and MSYS tools available at
|
* You can use the MinGW and MSYS tools available at
|
||||||
|
|
||||||
http://www.mingw.org
|
http://www.mingw.org
|
||||||
|
|
||||||
Untar the TCC archive and type in the MSYS shell:
|
Untar the TCC archive and type in the MSYS shell:
|
||||||
|
|
||||||
./configure [--prefix installpath]
|
./configure [--prefix installpath]
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
@ -119,11 +117,16 @@
|
|||||||
The default install location is c:\Program Files\tcc
|
The default install location is c:\Program Files\tcc
|
||||||
|
|
||||||
* Alternatively you can compile TCC with just GCC from MinGW using
|
* Alternatively you can compile TCC with just GCC from MinGW using
|
||||||
|
> build-tcc.bat (from the win32 directory)
|
||||||
|
|
||||||
build-tcc.bat (from the win32 directory)
|
Also MSVC can be used with the "VSTools Developer Command Prompt":
|
||||||
|
> build-tcc.bat -c cl
|
||||||
|
|
||||||
To install, copy the entire contents of the win32 directory to
|
or with a tcc (needs to be in a different directory)
|
||||||
where you want.
|
> build-tcc.bat -c some-tcc-dir\tcc.exe
|
||||||
|
|
||||||
|
Also you can copy/install everything into another directory:
|
||||||
|
> build-tcc.bat -i <dir>
|
||||||
|
|
||||||
|
|
||||||
Limitations:
|
Limitations:
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
set /p VERSION= < %~dp0..\..\VERSION
|
|
||||||
|
|
||||||
:config.h
|
|
||||||
echo> .\config.h #define TCC_VERSION "%VERSION%"
|
|
||||||
echo>> .\config.h #ifdef TCC_TARGET_X86_64
|
|
||||||
echo>> .\config.h #define CONFIG_TCC_LIBPATHS "{B}/lib/64;{B}/lib"
|
|
||||||
echo>> .\config.h #else
|
|
||||||
echo>> .\config.h #define CONFIG_TCC_LIBPATHS "{B}/lib/32;{B}/lib"
|
|
||||||
echo>> .\config.h #endif
|
|
@ -1,220 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{41F2DA74-9707-49A3-A466-157C7028BD79}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<RootNamespace>libtcc</RootNamespace>
|
|
||||||
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="Shared">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>ONE_SOURCE;LIBTCC_AS_DLL;TCC_TARGET_PE;TCC_TARGET_I386;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBTCC_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>copy $(TargetPath) $(SolutionDir)..</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>$(ProjectDir)PreBuild.bat</Command>
|
|
||||||
</PreBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Message>Generate config.h</Message>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>ONE_SOURCE;LIBTCC_AS_DLL;TCC_TARGET_PE;TCC_TARGET_X86_64;_DEBUG;_WINDOWS;_USRDLL;LIBTCC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>copy $(TargetPath) $(SolutionDir)..</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>$(ProjectDir)PreBuild.bat</Command>
|
|
||||||
</PreBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Message>Generate config.h</Message>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<PreprocessorDefinitions>ONE_SOURCE;LIBTCC_AS_DLL;TCC_TARGET_PE;TCC_TARGET_I386;WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBTCC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>copy $(TargetPath) $(SolutionDir)..</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>$(ProjectDir)PreBuild.bat</Command>
|
|
||||||
</PreBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Message>Generate config.h</Message>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<PreprocessorDefinitions>ONE_SOURCE;LIBTCC_AS_DLL;TCC_TARGET_PE;TCC_TARGET_X86_64;NDEBUG;_WINDOWS;_USRDLL;LIBTCC_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>copy $(TargetPath) $(SolutionDir)..</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>$(ProjectDir)PreBuild.bat</Command>
|
|
||||||
</PreBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Message>Generate config.h</Message>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\..\libtcc.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\..\arm-gen.c" />
|
|
||||||
<ClInclude Include="..\..\arm64-gen.c" />
|
|
||||||
<ClInclude Include="..\..\c67-gen.c" />
|
|
||||||
<ClInclude Include="..\..\conftest.c" />
|
|
||||||
<ClInclude Include="..\..\i386-asm.c" />
|
|
||||||
<ClInclude Include="..\..\i386-gen.c" />
|
|
||||||
<ClInclude Include="..\..\il-gen.c" />
|
|
||||||
<ClInclude Include="..\..\tcc.h" />
|
|
||||||
<ClInclude Include="..\..\tccasm.c" />
|
|
||||||
<ClInclude Include="..\..\tcccoff.c" />
|
|
||||||
<ClInclude Include="..\..\tccelf.c" />
|
|
||||||
<ClInclude Include="..\..\tccgen.c" />
|
|
||||||
<ClInclude Include="..\..\tccpe.c" />
|
|
||||||
<ClInclude Include="..\..\tccpp.c" />
|
|
||||||
<ClInclude Include="..\..\tccrun.c" />
|
|
||||||
<ClInclude Include="..\..\x86_64-gen.c" />
|
|
||||||
<ClInclude Include="..\..\coff.h" />
|
|
||||||
<ClInclude Include="..\..\elf.h" />
|
|
||||||
<ClInclude Include="..\..\i386-asm.h" />
|
|
||||||
<ClInclude Include="..\..\i386-tok.h" />
|
|
||||||
<ClInclude Include="..\..\il-opcodes.h" />
|
|
||||||
<ClInclude Include="..\..\libtcc.h" />
|
|
||||||
<ClInclude Include="..\..\stab.h" />
|
|
||||||
<ClInclude Include="..\..\tcclib.h" />
|
|
||||||
<ClInclude Include="..\..\tcctok.h" />
|
|
||||||
<ClInclude Include="..\..\x86_64-asm.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
@ -1,41 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 14
|
|
||||||
VisualStudioVersion = 14.0.25123.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcc", "tcc.vcxproj", "{6E7932A7-B123-48EB-AB39-40867AF28105}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
{41F2DA74-9707-49A3-A466-157C7028BD79} = {41F2DA74-9707-49A3-A466-157C7028BD79}
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtcc", "libtcc.vcxproj", "{41F2DA74-9707-49A3-A466-157C7028BD79}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Debug|x86 = Debug|x86
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
Release|x86 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{6E7932A7-B123-48EB-AB39-40867AF28105}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{6E7932A7-B123-48EB-AB39-40867AF28105}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{6E7932A7-B123-48EB-AB39-40867AF28105}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{6E7932A7-B123-48EB-AB39-40867AF28105}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{6E7932A7-B123-48EB-AB39-40867AF28105}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{6E7932A7-B123-48EB-AB39-40867AF28105}.Release|x64.Build.0 = Release|x64
|
|
||||||
{6E7932A7-B123-48EB-AB39-40867AF28105}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{6E7932A7-B123-48EB-AB39-40867AF28105}.Release|x86.Build.0 = Release|Win32
|
|
||||||
{41F2DA74-9707-49A3-A466-157C7028BD79}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{41F2DA74-9707-49A3-A466-157C7028BD79}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{41F2DA74-9707-49A3-A466-157C7028BD79}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{41F2DA74-9707-49A3-A466-157C7028BD79}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{41F2DA74-9707-49A3-A466-157C7028BD79}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{41F2DA74-9707-49A3-A466-157C7028BD79}.Release|x64.Build.0 = Release|x64
|
|
||||||
{41F2DA74-9707-49A3-A466-157C7028BD79}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{41F2DA74-9707-49A3-A466-157C7028BD79}.Release|x86.Build.0 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@ -1,195 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{6E7932A7-B123-48EB-AB39-40867AF28105}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<RootNamespace>tcc</RootNamespace>
|
|
||||||
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="Shared">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<LinkIncremental>true</LinkIncremental>
|
|
||||||
<IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<IncludePath>$(ProjectDir);$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>TCC_TARGET_PE;TCC_TARGET_I386;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalLibraryDirectories>Debug</AdditionalLibraryDirectories>
|
|
||||||
<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>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>copy $(TargetPath) $(SolutionDir)..</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>$(ProjectDir)PreBuild.bat</Command>
|
|
||||||
<Message>Generate config.h</Message>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>TCC_TARGET_PE;TCC_TARGET_X86_64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<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>
|
|
||||||
<AdditionalLibraryDirectories>x64\Debug</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>copy $(TargetPath) $(SolutionDir)..</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>$(ProjectDir)PreBuild.bat</Command>
|
|
||||||
<Message>Generate config.h</Message>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<PreprocessorDefinitions>TCC_TARGET_PE;TCC_TARGET_I386;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AdditionalLibraryDirectories>Release</AdditionalLibraryDirectories>
|
|
||||||
<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>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>copy $(TargetPath) $(SolutionDir)..</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>$(ProjectDir)PreBuild.bat</Command>
|
|
||||||
<Message>Generate config.h</Message>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PrecompiledHeader>
|
|
||||||
</PrecompiledHeader>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<PreprocessorDefinitions>TCC_TARGET_PE;TCC_TARGET_X86_64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<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>
|
|
||||||
<AdditionalLibraryDirectories>x64\Release</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>copy $(TargetPath) $(SolutionDir)..</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>$(ProjectDir)PreBuild.bat</Command>
|
|
||||||
<Message>Generate config.h</Message>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\..\tcc.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\..\tcc.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
Loading…
Reference in New Issue
Block a user