Joe Soroka
47b4cf22cd
tccasm: accept "fmul/fadd st(0),st(n)" (dietlibc ipow/atanh)
2011-02-01 15:49:37 -08:00
Joe Soroka
87d84b7cb8
tccasm: allow one-line prefix+op things like "rep stosb"
2011-02-01 15:37:58 -08:00
Joe Soroka
a25325e9be
tccasm: define __ASSEMBLER__ for .S files, like gcc does
2011-02-01 15:26:21 -08:00
Joe Soroka
75c6695932
tccpp: fix bug in handling of recursive macros
2011-02-01 13:23:40 -08:00
Joe Soroka
cf08675702
weak definitions overrule non-weak prototypes
2011-02-01 09:41:03 -08:00
Joe Soroka
c59d3426b8
tccasm: support .weak labels
2011-02-01 08:43:54 -08:00
Joe Soroka
4d5105c8f1
support weak attribute on variables
2011-02-01 00:37:53 -08:00
Joe Soroka
6839382480
asmtest: avoid testing against complex nop alignment in gas
...
.align #,0x90 in gas ignores the 0x90 and outputs any kind
of nop it feels like. the one avoided by this patch is a 7
byte nop, which gas has been doing since at least 1999:
http://sourceware.org/ml/binutils/1999-10/msg00083.html
In order to match what gas does, we would need to make
code alignment target-specific, import a lot of code, and
face the question: exactly which gas {version,target,tune}
combo are we trying to match? see i386_align_code in:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-i386.c?annotate=1.460&cvsroot=src
The smart noppery is turned on via the special casing of 0x90
at line 438 in md_do_align in:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-i386.h?annotate=1.1&cvsroot=src
2011-01-23 16:46:24 -08:00
Joe Soroka
2047f88334
i386-asm: accept retl as a synonym for ret
2011-01-21 01:35:28 -08:00
Joe Soroka
f43fafc680
accept multiple comma separated symbols for .globl/.global directives, like gas does
2011-01-20 02:00:50 -08:00
Sergei Trofimovich
0a50e6c933
tcc.c: fix an error when you build an object file with '-pthread' key set
...
The problem was partially fixed by Henry in the following patch:
tcc.c: skip -lpthread when -c option specified
But that patch had one brawback: it is sensitive to argument order,
as decision is taken during commandline parsing:
$ tcc -c a.c -o a.o -pthread # 1. works fine
tcc: error: file 'a.c' not found
$ tcc -pthread -c a.c -o a.o # 2. blows
tcc: error: cannot specify libraries with -c
This patch fixes case 2.
Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
2011-01-04 11:17:52 +02:00
Sergei Trofimovich
d97a25fbdd
lib/alloca*: mark ELF stack access flags as nonexecutable
...
Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
2011-01-04 10:38:52 +02:00
Sergei Trofimovich
288831854b
Makefile: respect LDFLAGS (set via --extra-ldflags=)
...
Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
2011-01-04 10:22:02 +02:00
Shinichiro Hamaji
0ed7ba3f5e
Support struct arguments with stdarg.h
...
- add __builtin_va_arg_types to check how arguments were passed
- move most code of stdarg into libtcc1.c
- remove __builtin_malloc and __builtin_free
- add a test case based on the bug report
(http://www.mail-archive.com/tinycc-devel@nongnu.org/msg03036.html )
2010-12-28 19:32:40 +09:00
Shinichiro Hamaji
07fd82b411
Make alignments for struct arguments 8 bytes
...
The ABI (http://www.x86-64.org/documentation/abi.pdf ) says
"The size of each argument gets rounded up to eightbytes"
2010-12-28 19:09:59 +09:00
Shinichiro Hamaji
83f0a7b6f8
Test va_copy in tcctest.c
2010-12-28 17:53:56 +09:00
Shinichiro Hamaji
45e1ae2896
One more fix for tcc -run
...
We don't need r_addend for addresses in PLT.
2010-12-28 17:44:51 +09:00
Shinichiro Hamaji
d457addfc3
Fix for the previous commit.
...
R_X86_64_PLT32 for .so doesn't need DLL relocation.
2010-12-28 16:52:21 +09:00
Shinichiro Hamaji
0ae39f1957
Handle r_addend and R_X86_64_PLT32 properly.
...
- r_addend should be applied for PLT entries as well
- R_X86_64_PLT32 should be handled just like R_X86_64_PC32
- spec says GLOB_DAT and JUMP_SLOT don't need r_addend (not tested)
http://www.x86-64.org/documentation/abi.pdf
Now we can -run ELF objects generated by GCC.
2010-12-28 16:14:30 +09:00
Henry Kroll III
48e325df3c
configure: --sharedir defaults to /usr/local/share
2010-12-23 06:36:07 -08:00
Henry Kroll III
f449f98dec
configure: --sharedir documentation root
2010-12-22 04:42:39 -08:00
Henry Kroll III
44f7055a04
make: fix cannot find -ltcc with --disable-rpath
2010-12-21 09:47:17 -08:00
Henry Kroll III
73cb4392ab
make: fix install with CC=tcc and potential link problem
2010-12-20 06:20:08 -08:00
Henry Kroll III
90355c78ed
configure: add --disable-rpath option (Fedora)
2010-12-20 05:55:54 -08:00
Henry Kroll III
3b3a7cc8ba
configure: improvements to option --tccdir
2010-12-20 05:38:59 -08:00
Henry Kroll III
d16722481f
tcc: add unsupported option -pedantic
2010-12-20 04:23:30 -08:00
Henry Kroll III
8f98573658
tcc: -m32 prefix "win32-" when file extension is present
2010-12-13 00:00:18 -08:00
Henry Kroll III
c6f5d819af
tcc: fix format string in error handler
2010-12-08 01:05:50 -08:00
Henry Kroll III
ffb9fcc5a2
tcc: oops, error handler does not accept format strings
2010-12-08 00:52:33 -08:00
Henry Kroll III
b3be007afa
tcc: fix -m32 and add -m64 option
2010-12-08 00:27:06 -08:00
Henry Kroll III
f3d3ab5a69
tcc: move undef out of if block
2010-12-06 16:36:00 -08:00
Henry Kroll III
10a08a372f
Merge branch 'mob' of git://repo.or.cz/tinycc into kroll
2010-12-06 16:25:33 -08:00
Henry Kroll III
bb7bb37fe2
tcc: add -m32 option to x86_64 cross compilers
2010-12-06 16:17:20 -08:00
Shinichiro Hamaji
f2d7998a96
Copy tcclib.h to tests directory so GCC uses its own headers.
...
86ffc48129
removed this cp command. However, it was necessary to pass tests on x86-64
because include/stdarg.h is different from GCC's definition on x86-64.
2010-12-07 03:04:45 +09:00
Henry Kroll III
33f86ada92
trim unnecessary bits from my previous 3 commits
2010-12-05 12:47:50 -08:00
Henry Kroll III
1c821373ad
make: i386/libtcc1.a for i386-tcc (x86_64 to i386 cross)
2010-12-05 01:04:28 -08:00
Henry Kroll III
50ff5ed790
make: cross compilers exist before using them (fixes parallel make)
2010-12-04 20:15:37 -08:00
Henry Kroll III
eb550ed23b
tcc: add option -s for gcc compatibility (ignored)
2010-12-04 16:04:33 -08:00
grischka
69fe7585a2
tiny_libmaker: strip leading directory to avoid buffer overrun
...
The arhdr.ar_name has 16 bytes. Long object names esp. with
leading directory were causing a buffer overrun which was
detected by glibc.
2010-12-04 16:56:58 +01:00
grischka
21c2a68aa0
tccelf/tcccoff: fix some type conversion warnings
2010-12-04 16:48:15 +01:00
grischka
86ffc48129
make: new lib/Makefile for libtcc1.a on more platforms
...
win32/64 cross-compilers now build libtcc1.a and install it
together with the windows headers in a 'win32' sub-directory
of TCCDIR.
2010-12-04 16:47:08 +01:00
Henry Kroll III
2ce9a0e2fe
needs lib path on bcheck.o fixes undefined symbol '__try__'
2010-12-02 21:43:46 -08:00
Henry Kroll III
3b8b290a45
make cross compilers an expert option in configure --help
2010-12-02 20:33:11 -08:00
Henry Kroll III
94e72b16e7
Add --enable-cygwin option to build on windows with cygwin+mingw32
2010-12-02 20:16:32 -08:00
Henry Kroll III
c5d3ce684a
Changelog: document some of the recent changes
2010-12-02 14:41:26 -08:00
Henry Kroll III
2215567d7a
Makefile: fix clean target, bcheck, add comments
2010-12-02 14:39:34 -08:00
Henry Kroll III
a2779556b4
split cross libtcc1.a to separate directories
2010-12-02 03:08:57 -08:00
Henry Kroll III
03b23994f1
tccpe.c: fallback to libtcc1.a for other targets (ARM)
2010-11-30 18:52:43 -08:00
Henry Kroll III
165d136614
Makefile: cleanup leftovers on cross build. really works now
2010-11-30 16:17:37 -08:00
Henry Kroll III
93ef24e6fe
Makefile: fix typo and resulting workaround
2010-11-30 16:08:33 -08:00