Subversion Repositories Kolibri OS

Rev

Rev 6439 | Rev 6443 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6429 siemargl 1
Siemargl port comments
2
 
3
Used github branch https://github.com/TinyCC/tinycc
4
It have a vesion 0.9.26 with heads up to 0.9.27 - see ChangeLog
5
 
6
Kolibri version errata/changelog:
7
 
8
-added TCC_TARGET_MEOS as needed
9
-leading_underscore by default is 0 (can use -f[no-]leading-underscore),
10
otherwise (error) underscoring all symbols, not only cdecl
11
-added message in tccmeos.c about missed symbols when linking KOS executable
12
-start.o added automatically, when -nostdlib not used
13
-to use standard ktcc lib must add -lck at commandline
14
-default search paths are ./include ./lib from executable (under KOS need to
15
 use -Bpath_to_ktcc and put start.o in current dir)
16
-when config.h is ready, compiler can be easy builded as [kos32-]gcc tcc.c libtcc.c
17
 see also makefile.kos32
18
-silent (kos) -> writes to debugboard
19
-impossible using with mingw-gcc compiled lib, incompatible library format:
20
 .o is PE-format from gcc but ELF from tcc, may be linux-gcc does it ok
21
-no symbols (mapfile) for debug, see howtodebugtcc
6441 siemargl 22
-no debug info for -g (kos32 linker imperfection)
23
-__fastcall incompatible with other compilers. now stack freed by caller.
24
 must fix i386-gen.c@490,572 (fixed in other branch https://github.com/mirror/tinycc)
6429 siemargl 25
 
26
 
6439 siemargl 27
-using __attribute__((packed)) see test82. need naming struct twice as in kos32sys1.h
28
-using __attribute__ ((alias xxx)) restricted only for non "static inline" functions
29
-erroneous or "non TCC" member using in nested structs or unions can lead to compiler internal error
6429 siemargl 30
-not working: default search path are ./include ./lib from executable
31
--under KOS need to use -Bpath_to_ktcc
32
--start.o not found using -B (kos) - put near your.c file
33
-if static var sized more than 14096+ -> crash compiled .exe (kos)
34
---^ stack size set in menuet header at compile time tccmeos.c:177 about 4k
6439 siemargl 35
-bench timing coarse (0s or 1s), no usec in newlib gettimeofday. OK
6429 siemargl 36
 
37
Tests status:
38
asmtest +
39
abitest not tested (embedding compiler)
40
libtcctest not tested (embedding compiler)
41
boundtest ----- alloca removed from tcc  libtcc.c:945 (really not worked)
42
tcctest most test ok, some problems with long double
43
vla_test.c +
44
 
45
pp/* +  (minor comment error in 13.s)
46
 
47
tests2/* : see below
48
 
49
// errata
50
skippin' tests
51
test76 fail dollars in identifiers
52
test34 fail (array assignment not supported)
53
test73 fail compile (no stdint.h), printfloat, ARM specific
54
test46 no stdin - removed funtionality read from console, but file ops works
55
 
56
 
57
libc:
58
-no "finished" in title of console program after exit console - use con_exit()
6439 siemargl 59
-used system memory allocator (4096 bytes minimum)
6429 siemargl 60
 
61
 
6433 siemargl 62
libc not complete. overall status:
6429 siemargl 63
no files:
6433 siemargl 64
errno.h  - in stdio
6429 siemargl 65
limits.h
66
locale.h
67
setjmp.h
68
signall.h
6439 siemargl 69
time.h  - can use get_tick_count()/100 from kos32sys1.h
6433 siemargl 70
wchar.h
71
wctype.h
6429 siemargl 72
 
6433 siemargl 73
 
74
 
75
functions absent list:
76
 
77
math.h
78
frexp
79
ldexp
80
modf
81
fmod
82
 
83
HUGE_VAL
84
 
6429 siemargl 85
stdio.h:
6439 siemargl 86
remove
87
rename
88
tmpfile
89
tmpnam
6433 siemargl 90
freopen
91
setbuf
92
setvbuf
6429 siemargl 93
 
94
 
6433 siemargl 95
stdlib.h:
96
atof
97
atol
98
strtol, strtoul
99
atexit
100
getenv
101
system
102
bsearch
103
qsort
104
mblen
105
mbtowc
106
wctomb
107
mbstowcs
108
wcstombs
109
 
110
string.h
111
strxfrm
112
 
113
 
6441 siemargl 114
            Status or libc tests
115
 
116
---FAILED---
117
tstring	- need to fix
118
 
119
 
120
---NOT TESTED---
121
no library fns realized
122
qsort
123
strtol
124
time
125
 
126
---HANG---
127
sscanf
128
>TEST_F(0x1234p56) - no %a formats
129
 
130
 
131
---STACK IS SMALL---
132
tstring
133
strtodlong
134
use new -stack=1280000 option
135
 
136
 
137
--other--
138
fscanf
139
-?scanf ignores width specs, '*' and [chars], cant read %a float
140
-%n counts as parameter
141
 
142
snprintf
143
-some format misturbances
144
 
145
ungetc
146
-ungetc fails if filepos == 0 - no tricks
147
 
148
all file ops limited to 2Gb