Commit Graph

71 Commits (88a3ccab9f3c877e2ffb8fecc3303006e0640907)

Author SHA1 Message Date
grischka 88a3ccab9f allow tcc be build from separate objects
If you want that, run: make NOTALLINONE=1
2009-12-20 01:53:49 +01:00
grischka 7fa712e00c win32: enable bounds checker & exception handler
exception handler borrowed from k1w1. Thanks.
2009-12-19 22:22:43 +01:00
grischka 1308e8ebcf integrate x86_64-asm.c into i386-asm.c
Also, disable 16bit support for now as it causes bugs
in 32bit mode.  #define I386_ASM_16 if you want it.
2009-12-19 22:16:20 +01:00
grischka e81569bc70 tcc: add "-Wl,-rpath=path" option (library search path) 2009-12-19 22:16:20 +01:00
Frederic Feret b7d7af4fa2 ARM: first support for arm-pe target 2009-11-13 18:09:00 +01:00
Frederic Feret 526c464504 first support of x86_64 assembly 2009-11-13 18:08:59 +01:00
grischka fc977d56c9 x86-64: chkstk, alloca 2009-07-18 22:06:54 +02:00
grischka dc251a7d8d win64: use new headers from mingw 2009-07-18 22:06:37 +02:00
grischka 3ba1532cfb pe32+ target: add to makefile 2009-07-18 22:05:40 +02:00
grischka 045cff28fe fix asmtest (somehow), update Makefiles 2009-07-18 21:54:51 +02:00
Shinichiro Hamaji 8ea8305199 x86-64: Add alloca. 2009-06-09 03:23:08 +09:00
grischka 110a4edc15 drop alloca #define
(Because GNU's alloca.h unconditionally #undef's alloca)

Also, remove gcc specific sections in headers. and
instead change tests such that gcc does not use them.
2009-05-16 22:30:13 +02:00
grischka 68310299b6 ulibc: #define TCC_UCLIBC and load elf_interp 2009-05-16 22:29:40 +02:00
grischka 5c6509578e make tcc from tcc.c and libtcc from libtcc.c 2009-05-05 20:41:17 +02:00
grischka a93bcdffae new files: tcc.h libtcc.c tccpp.c tccgen.c 2009-05-05 20:17:11 +02:00
grischka 15626621fb cleanup makefiles 2009-04-19 21:24:32 +02:00
grischka 5829791ffa fix makefiles etc for subdirs 2009-04-18 15:08:03 +02:00
grischka e8a52a8249 win32: readme.txt->tcc-win32.txt, update tcc-doc 2009-04-18 15:08:03 +02:00
grischka d165e87340 libtcc: new api tcc_set_lib_path 2009-04-18 15:08:03 +02:00
Shinichiro Hamaji 742cf05875 x86-64: Define make variable TARGET so that test2 and test3 use correct flag. 2009-04-18 15:08:02 +02:00
Shinichiro Hamaji 7db1e69df2 Suppress noisy pointer signed-ness warnings on x86-64. 2009-04-18 15:07:09 +02:00
Shinichiro Hamaji 0a9873aa22 Add support of x86-64.
Most change was done in #ifdef TCC_TARGET_X86_64. So, nothing should be broken by this change.

Summary of current status of x86-64 support:

- produces x86-64 object files and executables.
- the x86-64 code generator is based on x86's.
-- for long long integers, we use 64bit registers instead of tcc's generic implementation.
-- for float or double, we use SSE. SSE registers are not utilized well (we only use xmm0 and xmm1).
-- for long double, we use x87 FPU.
- passes make test.
- passes ./libtcc_test.
- can compile tcc.c. The compiled tcc can compile tcc.c, too. (there should be some bugs since the binary size of tcc2 and tcc3 is differ where tcc tcc.c -o tcc2 and tcc2 tcc.c -o tcc3)
- can compile links browser. It seems working.
- not tested well. I tested this work only on my linux box with few programs.
- calling convention of long-double-integer or struct is not exactly the same as GCC's x86-64 ABI.
- implementation of tcc -run is naive (tcc -run tcctest.c works, but tcc -run tcc.c doesn't work). Relocating 64bit addresses seems to be not as simple as 32bit environments.
- shared object support isn't unimplemented
- no bounds checker support
- some builtin functions such as __divdi3 aren't supported
2008-12-02 02:30:47 +01:00
Daniel Glöckner 15e0dc08a6 Allow to use libgcc instead of libtcc1
This patch adds a switch --with-libgcc to configure.
When passed it prevents libtcc1.a from being built and links to
/lib/libgcc_s.so.1 instead of PREFIX/lib/tcc/libtcc1.a.

It will work on ARM when using libgcc from GCC >= 4.2.0.
Prior versions don't have the __floatun[sd]i[sdx]f functions.

It won't work on i386 because of two missing symbols emitted when
floats are cast to integers, but users can provide those symbols
(global short constants) in their code if needed.

  Daniel
2008-09-12 22:22:58 +02:00
Daniel Glöckner e8039673ad ARM related Makefile changes
- Builds all four possible ARM targets when cross compiling

- Adds some auto detection to select the target for native ARM builds

The auto detection will select EABI if it finds /lib/ld-linux.so.3.
It will select VFP floating point support when /proc/cpuinfo lists
a VFP or iWMMXt coprocessor. Intel Wireless MMX does not imply VFP,
but it conflicts with FPA, so VFP is the only choice (apart from
yet unsupported soft-float).

  Daniel
2008-09-12 22:22:57 +02:00
Adam Sampson 8f7e3f325d Patch for DESTDIR installation (Adam Sampson) 2008-09-12 02:36:26 +02:00
grischka f22e961f80 update manual, changelog 2008-03-31 19:50:58 +00:00
grischka 2eaa1104f7 Checkin tiny_libmaker (ar replacement) by Timovj Lahde 2008-03-08 19:55:47 +00:00
grischka 265dddbecf Udated and cleaned up TODO. 2008-01-16 22:33:56 +00:00
grischka 6c96c41ee4 Import changesets (part 4) 428,457,460,467: defines for openbsd etc. 2007-12-16 18:24:44 +00:00
grischka f466577673 Disable singnedness warnings with newer gcc. 2007-12-13 19:17:45 +00:00
grischka f99d3de221 Import 409,410: ARM EABI by Daniel Glckner 2007-12-04 20:38:09 +00:00
grischka d778bde7f9 Import more changesets from Rob Landley's fork (part 2) 2007-11-21 17:16:31 +00:00
bellard d13aa5426a typos 2006-10-28 19:50:24 +00:00
bellard c42532c37d use CFLAGS from configure 2005-09-03 18:34:22 +00:00
bellard c262e9ea04 win32 fix 2005-06-17 22:03:50 +00:00
bellard c897c52088 cannot change dir layout yet 2005-04-15 00:23:00 +00:00
bellard ce93d5440f update 2005-04-15 00:11:02 +00:00
bellard 7baf968102 build of cross compilers is optional - win32 merge 2005-04-14 23:52:04 +00:00
bellard 2c538d7a2b initial PE format support 2005-04-10 21:46:58 +00:00
bellard 27feb1adac gcc 3.4 fix 2004-11-07 18:08:15 +00:00
bellard 13affef3f1 win32 configure 2004-10-07 21:11:43 +00:00
bellard ec7d36326d C67 COFF executable format support (TK) 2004-10-05 22:33:55 +00:00
bellard 6e5b1cc43a ARM fixes (Daniel Glockner) 2004-10-04 22:19:21 +00:00
bellard 79c72b2419 initial TMS320C67xx support (TK) 2004-10-04 21:57:35 +00:00
bellard 8da2d689df install fix 2004-10-02 13:46:33 +00:00
bellard 370f5e571c added missing texi2pod.pl 2003-05-24 18:31:27 +00:00
bellard fe3b68b087 libtcc1 is now a library so that it is linked in only on demand 2003-05-24 15:45:33 +00:00
bellard f0d5a74bcd automatic man page generation from tcc-doc.texi 2003-05-18 18:11:06 +00:00
bellard 6104629dc2 added -run option 2003-04-13 21:55:08 +00:00
bellard cb96022ab7 added configure - gcc 3.x support 2003-04-13 19:48:19 +00:00